fix: exportCSVDataToExistingTableをシート名指定からテーブル名検索(FindListObjectByName)に変更

「営業所」テーブルがどのシートにあってもブック全体から見つけられるよう、既存のFindListObjectByNameを再利用する方式に統一。

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Kenichiro NOGI 2026-09-14 10:02:27 +09:00
parent 6dc6ede9a9
commit 13cad20ead

View File

@ -599,29 +599,18 @@ Sub SetupFilterSorterTables()
End Sub End Sub
'****************************************************************************** '******************************************************************************
'既に存在するシート・テーブルにのみCSVデータヘッダ行を除くを上書きする。 'ブック内の全シートからテーブル名でテーブルListObjectを探し、CSVデータヘッダ行を除くを上書きする。
'テーブル名は問わずシート上の最初のテーブルを対象にする。シートやテーブルが存在しない場合は 'シート名は問わない。テーブルが見つからない場合は新規作成せずメッセージを出して終了する
'新規作成せずメッセージを出して終了する Function exportCSVDataToExistingTable(csvData As Variant, tableName As String)
Function exportCSVDataToExistingTable(csvData As Variant, targetSheet As String) Debug.Print "CSVデータを既存テーブルに出力開始: " & tableName
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
Dim tbl As ListObject 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 i As Long, j As Long
Dim arr() As Variant Dim arr() As Variant
@ -631,7 +620,7 @@ Function exportCSVDataToExistingTable(csvData As Variant, targetSheet As String)
Set rows = ParseCsv(csvData) Set rows = ParseCsv(csvData)
If rows.count <= 1 Then If rows.count <= 1 Then
MsgBox "データが存在しません(ヘッダのみ): " & targetSheet, vbExclamation MsgBox "データが存在しません(ヘッダのみ): " & tableName, vbExclamation
Exit Function Exit Function
End If End If
@ -668,7 +657,7 @@ Function exportCSVDataToExistingTable(csvData As Variant, targetSheet As String)
Next i Next i
tbl.DataBodyRange.Value = dataArr tbl.DataBodyRange.Value = dataArr
Debug.Print "CSVデータを既存テーブルに出力完了: " & targetSheet Debug.Print "CSVデータを既存テーブルに出力完了: " & tableName
End Function End Function
'テーブルID 96243営業所マスタをExport方式で全件取得し、「営業所」シートの既存テーブルを更新する 'テーブルID 96243営業所マスタをExport方式で全件取得し、「営業所」シートの既存テーブルを更新する