VBAコードをブラウザ内でマスキングする
クラス・型、関数・メソッド、識別子、値、コメントを選び、VBA構造を確認できる共有用コピーを作成します。入力CodeはDevelop Toolsのサーバーへ送信・保存されません。
VBAコードマスキングツールを開く結論
顧客名、Workbook・Sheet・Range名、Path、URL、Credential、Mail、Commentを確認し、Sub・Function、Object参照、Error処理を保った共有用コピーを作ります。
元VBA Projectを直接編集せず、共有用Copyで作業してください。
機密情報とVBAの再現Contextを分ける
Option Explicit
Sub ExportCustomer()
Dim customerSheet As Worksheet
Set customerSheet = ThisWorkbook.Worksheets("Customer_Master")
customerSheet.Range("A1").Value = "Acme Corporation"
End Sub
| 残す候補 | 隠す候補 |
|---|---|
| Sub・Function・If・With | 顧客名、Workbook・Sheet名 |
| Object型・Error Number | Path、URL、Credential |
| 再現手順・Office bit数 | Mail、Cell値、Comment |
VBAコードマスキングツールで確認する手順
- 1. 相談に必要なModuleの最小範囲をCopyします。
- 2. 型・Method・識別子・値・Commentを選択してマスキングします。
- 3. 宣言と参照、Object修飾、Error処理を比較します。
- 4. 必要語だけ右クリックで戻し、結果だけを共有します。
見落としを防ぐ確認表
| 分類 | 確認対象 |
|---|---|
| Excel | Workbook、Sheet、Range、Cell値 |
| 接続 | Path、URL、Server、Credential |
| 識別子 | Module、Sub、Function、Variable |
| 周辺 | Comment、Error Message、Mail、Log |
VBA固有の構文と再現条件を残せているか確認する
- Option Explicit、Option Base、条件付きコンパイル、Declare・PtrSafe・LongPtrを残す
- Sub・Function・Property Get・Let・Setの宣言と呼出し、戻り値代入を対応させる
- ByRef・ByVal・Optional・ParamArray、型宣言文字、配列の括弧と下限・上限を変えない
- Set・Nothing・With・先頭ドット、ThisWorkbook・ActiveWorkbook・Worksheet参照を残す
- On Error GoTo、Resume、Err.Number・Description・Source、行Labelを残す
- Range・Cells・Offset・Resizeの修飾元と行継続記号を確認する
- ADO接続文字列、SQL、JSON、URL、Regex、Mail本文は別のデータとしても確認する
現行ツールはString内部のSQL・接続文字列・URL・正規表現を分解しません。必要ならSQL・JSON・URL・正規表現・Log用ツールで別Copyを確認し、VBAの引用符へ戻してください。
AI・Issue・Chatへ共有する前の最終チェック
- Password、API Key、Token、Connection String、Cookie、Authorizationを検索する
- 顧客名、Email、電話番号、社員番号、Workbook・Sheet・Range名、帳票名を確認する
- UNC Path、Drive Letter、Windows User名、Server・DB名、URL、IP Addressを確認する
- Outlookの宛先・CC・件名・本文・添付Path、ExcelのCell値も点検する
- Officeの32/64 bit、VBA7、Host Application、Error Number、再現手順は残す
- 共有するのはマスキング結果だけにし、元Codeと対応情報は権限管理された場所へ残す
実CredentialがCodeや履歴へ入っていた場合、文字列を隠すだけでは対処になりません。失効・再発行と保存方法の見直しを行ってください。
現在のVBAコードマスキングツールでできること・できないこと
| 確認項目 | 現在の対応 | 注意点 |
|---|---|---|
| 入力 | VBAテキストの貼り付け | .bas・.cls・.frmの直接読込、VBA Project一括処理、Downloadは行わない |
| 分類 | クラス・型、関数・メソッド、識別子、値、コメント | VBE、VBA Compiler、Office Object Modelと同等の構文・型・参照解析ではない |
| 宣言 | Sub、Function、Property Get・Let・Set、Declare、Type、Enum、引数、変数、行Labelを手掛かりに対応付け | 参照設定、Late Binding、Default Property、CallByName、文字列で指定する名前は意味解析しない |
| 値 | Stringをvalue-N、Numberを0、Date Literalを#2000-01-01#へ置換 | Connection String、SQL、JSON、URL、Range Addressの文字列内部を項目別には解析しない |
| 64 bit | PtrSafe、LongPtr、LongLong、VBA7等のKeywordを保持 | Pointer・Handleの型が正しいか、WinAPI宣言が安全かは判定しない |
| コメント | マスキングして残す・残す・削除するを選択 | TODO、顧客名、Path等を意味別に検出する機能ではない |
| 出力 | 結果コピー、全消去、結果側の右クリックによる個別解除 | Mapping View、Mapping Download、履歴保存、復元用Fileは提供しない |
| 保存 | Font・Theme等の表示設定だけをLocalStorageへ保存 | 入力VBA、結果、対応表はLocalStorageへ保存しない |
| プライバシー | 入力と変換をブラウザ内で処理 | VBAコードと結果をDevelop Toolsのサーバーへ送信・保存しない |
マスキング結果は共有用コピーです。VBEの「デバッグ」→「VBAProjectのコンパイル」、実行テスト、参照設定確認、Security Reviewを代替しません。
Microsoft公式資料と利用中のOfficeで仕様を確認する
- Microsoft Learn: Option Explicit statement
- Microsoft Learn: Passing arguments efficiently
- Microsoft Learn: Variant data type
- Microsoft Learn: On Error statement
- Microsoft Learn: Object variable not set (Error 91)
- Microsoft Learn: 64-bit VBA overview
- Microsoft Learn: Excel Range.Cells property
- Microsoft Learn: With statement
Office VBAはHost Application、32/64 bit、参照設定、Office Versionで挙動が変わります。記事の例だけで断定せず、利用中のVBEとMicrosoft Learnで確認してください。
具体例:実行時ErrorをAIへ質問
顧客名、Workbook・Sheet・Range名、Path、URL、Credential、Mail、Commentを確認し、Sub・Function、Object参照、Error処理を保った共有用コピーを作ります。
実Credential、実顧客情報、内部Pathではなくexample.testやDummy Workbook等を使い、問題を再現する最小範囲で確認します。
- 最小再現Codeを別Copyへ切り出す
- 識別子・値・Commentをマスキングする
- VBA構文とObject参照を比較する
- マスキング結果だけを共有する
結果側の匿名箇所は右クリックで個別解除できます。戻した元情報が本当に共有に必要か、送信前に再確認してください。
よくある質問
- .bas・.cls・.frmやExcel Fileを直接読み込めますか?
- 直接読込には対応していません。必要なVBAテキストを入力欄へ貼り付けます。現行ツールはVBE、VBA Compiler、Office Object Modelと同等の解析ではありません。
- Connection String、SQL、Range、PtrSafeも自動で正しく判断できますか?
- 保証しません。String内部のConnection String・SQL・JSON・URL・Regex、Rangeの参照先、参照設定、Pointer・Handle型は意味解析しません。必要に応じて専用ToolとMicrosoft資料、VBE Compileで確認します。
- 入力したVBAコードはサーバーへ送信されますか?
- 入力とマスキング結果はブラウザ内で処理され、Develop Toolsのサーバーへ送信・保存されません。LocalStorageへ保存されるのは表示設定だけで、Mapping Viewや履歴保存もありません。