fix: exportCSVDataToExistingTableをシート名指定からテーブル名検索(FindListObjectByName)に変更
「営業所」テーブルがどのシートにあってもブック全体から見つけられるよう、既存のFindListObjectByNameを再利用する方式に統一。 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
parent
6dc6ede9a9
commit
13cad20ead
@ -599,29 +599,18 @@ Sub SetupFilterSorterTables()
|
||||
End Sub
|
||||
|
||||
'******************************************************************************
|
||||
'既に存在するシート・テーブルにのみCSVデータ(ヘッダ行を除く)を上書きする。
|
||||
'テーブル名は問わずシート上の最初のテーブルを対象にする。シートやテーブルが存在しない場合は
|
||||
'新規作成せずメッセージを出して終了する
|
||||
Function exportCSVDataToExistingTable(csvData As Variant, targetSheet As String)
|
||||
Debug.Print "CSVデータを既存テーブルに出力開始: " & targetSheet
|
||||
|
||||
Dim ws As Worksheet
|
||||
On Error Resume Next
|
||||
Set ws = ThisWorkbook.Sheets(targetSheet)
|
||||
On Error GoTo 0
|
||||
|
||||
If ws Is Nothing Then
|
||||
MsgBox "シートが存在しません: " & targetSheet, vbExclamation
|
||||
Exit Function
|
||||
End If
|
||||
|
||||
If ws.ListObjects.count = 0 Then
|
||||
MsgBox "テーブルが存在しません: " & targetSheet, vbExclamation
|
||||
Exit Function
|
||||
End If
|
||||
'ブック内の全シートからテーブル名でテーブル(ListObject)を探し、CSVデータ(ヘッダ行を除く)を上書きする。
|
||||
'シート名は問わない。テーブルが見つからない場合は新規作成せずメッセージを出して終了する
|
||||
Function exportCSVDataToExistingTable(csvData As Variant, tableName As String)
|
||||
Debug.Print "CSVデータを既存テーブルに出力開始: " & tableName
|
||||
|
||||
Dim tbl As ListObject
|
||||
Set tbl = ws.ListObjects(1)
|
||||
Set tbl = FindListObjectByName(tableName)
|
||||
|
||||
If tbl Is Nothing Then
|
||||
MsgBox "テーブルが存在しません: " & tableName, vbExclamation
|
||||
Exit Function
|
||||
End If
|
||||
|
||||
Dim i As Long, j As Long
|
||||
Dim arr() As Variant
|
||||
@ -631,7 +620,7 @@ Function exportCSVDataToExistingTable(csvData As Variant, targetSheet As String)
|
||||
Set rows = ParseCsv(csvData)
|
||||
|
||||
If rows.count <= 1 Then
|
||||
MsgBox "データが存在しません(ヘッダのみ): " & targetSheet, vbExclamation
|
||||
MsgBox "データが存在しません(ヘッダのみ): " & tableName, vbExclamation
|
||||
Exit Function
|
||||
End If
|
||||
|
||||
@ -668,7 +657,7 @@ Function exportCSVDataToExistingTable(csvData As Variant, targetSheet As String)
|
||||
Next i
|
||||
tbl.DataBodyRange.Value = dataArr
|
||||
|
||||
Debug.Print "CSVデータを既存テーブルに出力完了: " & targetSheet
|
||||
Debug.Print "CSVデータを既存テーブルに出力完了: " & tableName
|
||||
End Function
|
||||
|
||||
'テーブルID 96243(営業所マスタ)をExport方式で全件取得し、「営業所」シートの既存テーブルを更新する
|
||||
|
||||
Loading…
Reference in New Issue
Block a user