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
|
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方式で全件取得し、「営業所」シートの既存テーブルを更新する
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user