Commit Graph

37 Commits

Author SHA1 Message Date
Kenichiro NOGI
4b8498ba2d chore: callRestApiのデバッグログをコメントアウト(削除せず必要時に復活できるよう保持)
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-18 19:09:58 +09:00
Kenichiro NOGI
0544365276 fix: テーブル書込みをDataBodyRangeプロパティに依存しない実装に全面変更
DataBodyRangeは、直前と同一サイズへのResizeだけでなくヘッダ+1データ行という特定サイズへのResizeでも
内部状態が更新されずNothingのままになるケースがあり、tempRows経由の2段階Resizeでも解消しなかった。
根本対応として、exportCSVDataToSheet/getRecordsDataToSheet/exportCSVDataToExistingTableの3関数で
DataBodyRangeを一切使わず、tbl.Range(ヘッダ含む全体範囲)から直接Offset/Resizeで計算したRangeに
クリア・書き込みを行う方式に統一。調査用デバッグログも整理した。

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-18 19:07:02 +09:00
Kenichiro NOGI
97f371db3f debug: D3セルの状態メッセージをイミディエイトウィンドウにも出力
処理開始/完了/失敗のD3表示内容を[D3]プレフィックス付きでDebug.Printし、フリーズ調査時にログだけで状態を追えるようにした。

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-18 19:01:48 +09:00
Kenichiro NOGI
49ef4c5358 fix: テーブルResizeでヘッダのみ(1行)への一時縮小がExcelにエラーとして拒否される問題を修正
前回のDataBodyRange Nothing対策で「一旦ヘッダ行のみにリサイズ」する方式にしたところ、
「テーブルには1行以上のデータが必要」という理由でExcel側にResize自体を拒否されるケースがあった。
現在の行数・目的の行数のいずれとも確実に異なる一時サイズ(rows.count+現在行数+1等)を経由する方式に変更し、
常に1行以上のデータ行を含んだ状態でリサイズすることで回避。

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-18 19:01:05 +09:00
Kenichiro NOGI
e879b0f584 feat: runExportFlowにもGet方式と同じFilter/Sorter条件を適用
exportCSVDataのOptional viewObj引数にBuildViewFromSheet()の結果を渡すことで、
FilterTable/SorterTableの絞り込み・並び替え条件がExport方式にも反映されるようにした。

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-18 18:57:06 +09:00
Kenichiro NOGI
a60244b7b0 fix: テーブルResize時にDataBodyRangeがNothingのままになる問題を修正
Excelのテーブル(ListObject)は、直前と同一サイズへのResizeを行うとDataBodyRangeの内部状態が更新されないことがあり、
データ行数が変わらない場合(前回0件クリア後に1件だけ取得した場合など)にDataBodyRange.Value代入が効かず、
テーブルにデータが書き込まれない不具合があった。
exportCSVDataToSheet/getRecordsDataToSheet/exportCSVDataToExistingTableの3箇所で、
一旦ヘッダ行のみにリサイズしてから目的のサイズにリサイズし直すことで回避。
調査用の詳細デバッグログ([DEBUG] records.count等)も合わせて追加。

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-18 18:56:37 +09:00
Kenichiro NOGI
67b9f8c0f8 fix: Export/Get方式とも0件取得時にテーブルのデータ部分をクリアするよう修正
従来は0件時にMsgBoxを出して即終了し、テーブルの前回データがそのまま残ってしまっていた。
runGetFlowはrecords.count=0でもgetRecordsDataToSheetを呼ぶよう変更し、getRecordsDataToSheet/exportCSVDataToSheetは0件時にMsgBoxを出さずヘッダを維持したままDataBodyRangeだけクリアするよう修正。

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-18 18:44:42 +09:00
Kenichiro NOGI
06340cdb7b debug: レスポンスステータス・本文全文を出力するデバッグコードを追加
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-18 18:39:03 +09:00
Kenichiro NOGI
7745fc6858 debug: リクエストボディ出力ログを再度復活
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-18 18:38:05 +09:00
Kenichiro NOGI
413de865f0 fix: 入力チェックの名前付き範囲を「物件状況」から正しい「選択状況」に修正
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-18 18:34:10 +09:00
Kenichiro NOGI
51e1e166d4 chore: リクエストボディのデバッグログを削除
Filter/Sorter動作確認が完了したため撤去。

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-18 18:31:17 +09:00
Kenichiro NOGI
b9150c0461 fix: 選択営業所/物件状況チェックの型不一致エラー(実行時エラー13)を解消
Range(...).Valueが配列やエラー値を返すケースでTrimが型不一致エラーになっていた。
Cells(1,1)で単一セル値を取得し、IsErrorチェック+CStrで文字列化してから判定するよう修正。

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-18 18:29:48 +09:00
Kenichiro NOGI
bc03b2d47b feat: run()実行前に「選択営業所」「物件状況」の入力チェックを追加
名前付き範囲が空欄の場合はアラート表示して処理中断する。runSalesOfficeExportには適用しない。

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-18 18:28:09 +09:00
Kenichiro NOGI
d7a8457114 fix: exportCSVDataToSheetが既存テーブルでもヘッダ行を毎回CSVの最新列構成で更新するよう修正
従来は新規テーブル作成時のみヘッダを設定し、既存テーブルがある場合はヘッダを書き換えていなかったため、
Pleasanter側で列の追加・削除・並び替えが起きるとヘッダラベルとデータ列がズレる問題があった。
getRecordsDataToSheet(Get方式)と同様、テーブルの有無に関わらず毎回CSVの1行目でヘッダを上書きするよう変更。

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-18 18:12:31 +09:00
Kenichiro NOGI
13cad20ead fix: exportCSVDataToExistingTableをシート名指定からテーブル名検索(FindListObjectByName)に変更
「営業所」テーブルがどのシートにあってもブック全体から見つけられるよう、既存のFindListObjectByNameを再利用する方式に統一。

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-14 10:02:27 +09:00
Kenichiro NOGI
6dc6ede9a9 fix: 営業所マスタExportを既存テーブルへの上書き専用に変更、新規シート・テーブル作成を廃止
exportCSVDataToSheetはtargetSheetと同名のテーブルを探す仕様のため、実際のテーブル名が一致せず新規シート・テーブルが作られてしまっていた。
exportCSVDataToExistingTableを新規追加し、テーブル名を問わず「営業所」シート上の既存テーブル(1つ目)に直接上書きする方式に変更。シート・テーブルが存在しない場合は新規作成せずエラー表示のみ。

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-14 10:01:00 +09:00
Kenichiro NOGI
e455fe0a21 feat: runSalesOfficeExportにNumA昇順のソート条件を固定で追加
exportCSVDataにOptionalなviewObj引数を追加し、営業所Export専用にColumnSorterHash(NumA:asc)を渡すよう変更。
既存のrunExportFlowはviewObj省略のためViewなしのまま、既存動作に影響なし。

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-14 09:58:00 +09:00
Kenichiro NOGI
70d9eb974b feat: 営業所マスタ(96243)Export専用の独立Sub runSalesOfficeExportを追加
既存run()とは別の独立エントリポイント。テーブルID 96243をExport方式(ExportId=1)で全件取得し「営業所」シートの既存テーブルを更新する。
Filter/Sorterは使わない。exportCSVDataToSheetが既存テーブルのヘッダを書き換えずデータ部分のみ更新する仕様をそのまま利用し、CSVのヘッダ行は自動的に捨てられる。

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-14 09:56:02 +09:00
Kenichiro NOGI
631e66242f fix: FilterTable/SorterTableを基本情報シート限定でなく全シートから名前で検索するよう修正
defaultSh(基本情報シート)固定で探していたため、ユーザーが別シートにテーブルを配置した際にBuildViewFromSheetが見つけられずViewが常に空になっていた。
FindListObjectByNameを追加し、ブック内の全シートを走査してテーブル名で検索するよう変更。

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-14 09:48:41 +09:00
Kenichiro NOGI
d83d74afdc debug: リクエストボディ出力ログを復活
検証がまだ終わっていない段階で削除してしまったため復活。Filter/Sorter動作確認が完了するまで残す。

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-14 09:44:38 +09:00
Kenichiro NOGI
1eb1a7dc87 fix: BuildViewFromSheetをセル座標指定からテーブル名(FilterTable/SorterTable)参照に変更
Filter表・Sorter表の配置をユーザーが移動したところ、固定セル座標(F3/J3)読み取りのため条件が反映されずViewが空になっていた。
ListObjects("FilterTable")/("SorterTable")をテーブル名で取得し、1列目=項目名・2列目=値/昇降順という列位置ベースで読むよう変更。テーブルをシート上のどこに配置しても動作する。
デバッグ用に追加していたリクエストボディ出力ログも削除。

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-14 09:43:27 +09:00
Kenichiro NOGI
3bfdf3b73e fix: Filter値をJSON配列文字列(["値"])として渡すよう修正
Pleasanter ColumnFilterHashは選択肢項目の値をJSON配列文字列で受け取る仕様のため、単純な値のままでは条件が無視され全件返っていた。単一値を1要素配列にラップして解消。

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-13 18:33:10 +09:00
Kenichiro NOGI
460b540997 feat: Filter/Sorter条件をGet方式のみに適用、Export方式からは除外
exportCSVDataのBuildViewFromSheet呼び出しを削除。Export方式は常に全件取得、Get方式のみ基本情報シートのFilter表・Sorter表を反映する。

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-13 18:09:07 +09:00
Kenichiro NOGI
3e51710d9f feat: Get方式のISO8601日付文字列をyyyy/mm/dd表記に正規化、未設定日付(1899-12-30)は空欄化
NormalizeGetValueを追加し、getRecordsDataToSheetの値格納時に適用。
オブジェクト値の空欄化処理もこの関数に統合。
2026-09-11 14:30:01 +09:00
Kenichiro NOGI
cb01653d77 feat: runExportFlow/runGetFlowにAPI通信・書込処理の区間計測(Timer)を追加
Export方式の処理時間がGet方式より長い件を調査するため計測を追加。
結果、ボトルネックはAPI通信側(サーバー処理)でパース・書込処理ではないと判明したため、今後の検証用に計測コードは残す。
2026-09-11 14:26:56 +09:00
Kenichiro NOGI
81c9f67331 feat: D7切替を廃止しExport/Get両方を毎回実行、出力先をtableId+E/Gシートに分離
D7による方式切替をやめ、run()実行のたびにExport方式・Get方式を両方実行するよう変更。
Export結果は tableId&"E" シート、Get結果は tableId&"G" シートへ別々に保存。
両シートが分かれたため、Get→Export切替時のヘッダ残留対策(既存テーブル削除)は不要になり削除。
処理時間はD4〜D6に両方式合計で記録。
2026-09-11 14:20:30 +09:00
Kenichiro NOGI
2192c9718f fix: Sorter表をH:I列からJ:K列に移動しFilter表との隣接によるテーブル自動結合を回避
F2:G2(Filter表)とH2:I2(Sorter表)が隣接していたため、ListObjects.Add実行時にExcelが1つの連続テーブルとして扱い「テーブルは他のテーブルと重ねることはできません」エラーが発生。間に1列(I列)空くよう配置変更。
2026-09-11 14:04:20 +09:00
Kenichiro NOGI
d4a6b5c12a fix: getRecordsDataToSheetのrec変数をDictionary型に変更しByRef型不一致を解消
FlattenRecord(record As Dictionary)へVariant型変数をByRef渡ししていたためVBEでコンパイルエラー発生。呼び出し側の変数型をDictionaryに合わせて修正。
2026-09-11 14:01:42 +09:00
Kenichiro NOGI
243ecb1b4b fix: run()のエラーハンドリング・失敗検知とGet→Export切替時のヘッダ残留・配列値クラッシュを修正
最終レビューで指摘されたImportant4件に対応:
- run()にエラーハンドラを追加し、失敗時もCalculation/ScreenUpdatingを確実に復元
- runExportFlow/runGetFlowをBoolean化し、データ取得失敗をD3に反映
- Get方式実行後のExport方式実行でヘッダが残留する問題を、既存テーブル削除で解消
- getRecordsDataToSheetでオブジェクト値(JSON配列等)による実行時エラーを回避
2026-09-11 13:50:06 +09:00
Kenichiro NOGI
fabee98ea1 feat: Filter表・Sorter表を自動作成するSetupFilterSorterTablesを追加 2026-09-11 13:37:17 +09:00
Kenichiro NOGI
2454478c65 feat: run()をExport/Get分岐フロー化し処理時間計測(D4-D6)を追加 2026-09-11 13:34:35 +09:00
Kenichiro NOGI
96133b8929 feat: Get方式のレコードをテーブルに書き込むgetRecordsDataToSheetを追加 2026-09-11 13:30:34 +09:00
Kenichiro NOGI
167e2ba5d9 feat: ClassHash等のネスト構造を展開するFlattenRecordを追加 2026-09-11 13:27:26 +09:00
Kenichiro NOGI
d3d844d441 feat: Get API(api-record-get-multi)でレコードを取得するgetRecordsDataを追加 2026-09-11 13:25:01 +09:00
Kenichiro NOGI
adfd140d9b feat: exportCSVDataがBuildViewFromSheetでFilter/Sorterを組み立てるよう変更 2026-09-11 13:21:40 +09:00
Kenichiro NOGI
b8ef165fdf feat: Filter/Sorter表からViewパラメータを組み立てるBuildViewFromSheetを追加 2026-09-11 13:18:03 +09:00
Kenichiro NOGI
4dc4b0cc1d feat: 取得方式(D7)を読み込むfetchMethod変数を追加 2026-09-11 13:12:33 +09:00