🛠️ PERSONAL.XLSB を VS Code で快適に編集する方法
🧭 はじめに
このページでは、Excel の個人用マクロブック(PERSONAL.XLSB)を、VS Code を使って快適に編集・管理する方法を解説します。 対象は以下のようなケースです。
- オートシェイプ操作など、一部だけ VBA が必要
- VBA は PERSONAL.XLSB に集約している
- 業務端末でアプリのインストール制限がある
- GitHub 等の外部サービスは使えず、ローカル Git リポジトリのみ利用可能
この手順では、追加アプリのインストールなしで、 「VS Code で編集 → PowerShell で Excel に反映」 という安全かつ再現性の高い運用を実現します。
🎯 この記事でできること
- PERSONAL.XLSB の VBA を テキストファイルとして管理
- VS Code の検索・置換・差分確認をフル活用
- Excel 側は「実行・デバッグ専用」に割り切る
- ローカル Git で履歴管理(GitHub 不要)
PERSONAL.XLSB を「成果物」、VBA テキストを「ソースコード」として扱うことで、事故が激減します。
🧱 全体構成(考え方)
基本方針
- 同期対象は標準モジュール(.bas)のみ
- ThisWorkbook / Sheet モジュールは扱わない
- Auto_Open は標準モジュールで定義する
なぜこの構成か
- Document モジュールは削除・再生成できず事故要因になる
- 個人マクロ用途では標準モジュールで十分
- PowerShell だけで完結し、環境依存が少ない
Excel は標準モジュールに定義された Auto_Open も正しく実行します。
📁 ディレクトリ構成
任意のローカルフォルダに、以下の構成を作成します。
vba-personal ├─ src │ └─ Personal │ ├─ Shapes.bas │ ├─ Utils.bas │ └─ Startup.bas ├─ tools │ ├─ export-personal.ps1 │ └─ import-personal.ps1 └─ README.md
- src/Personal → Git管理対象(VBAの正本)
- tools → Excel と同期するための PowerShell スクリプト
- PERSONAL.XLSB → Gitには含めない
PERSONAL.XLSB を Git 管理しないでください。 環境依存・破損・競合の原因になります。
⚙️ 事前準備(Excel 側)
VBA プロジェクト操作の許可
Excel の設定で以下を必ず有効にします。
- トラストセンター
- マクロの設定
- 「VBA プロジェクト オブジェクト モデルへのアクセスを信頼する」
この設定が OFF のままだと、import / export スクリプトは必ず失敗します。
📤 VBA を書き出す(PERSONAL.XLSB → テキスト)
export-personal.ps1 の役割
- PERSONAL.XLSB を開く
- 標準モジュール(.bas)のみを抽出
- src/Personal 配下に保存
この操作により、Excel 内の VBA が完全に可視化されます。
最初に必ず export することで、「Excel 側が最新」という前提を明確にできます。
✏️ VS Code で編集する
できること
- 高速検索・置換
- 複数ファイル横断の修正
- Git 差分で変更点を正確に把握
- コード整形・スニペット活用
推奨ルール
- 1ファイル = 1用途
- ファイル名で役割を明確にする 例:Shapes_Align.bas / Shapes_Color.bas
VBE の編集体験と比べると、戻れなくなるレベルで快適になります。
📥 VBA を取り込む(テキスト → PERSONAL.XLSB)
import-personal.ps1 の役割
- src/Personal の .bas を読み込む
- 同名モジュールがあれば削除
- 最新コードを PERSONAL.XLSB に反映
重要な挙動
- モジュールの「増殖」を防ぐため、必ず削除→追加
- Document モジュールは一切触らない
Excel が起動したままだと、PERSONAL.XLSB がロックされ失敗することがあります。
🚀 Auto_Open の扱い
推奨パターン
Startup.bas のような標準モジュールに定義します。
- Excel 起動時に一度だけ処理したい場合はフラグ制御
- ホットキー登録などはここに集約
ThisWorkbook に依存しないため、同期対象を .bas のみに保てます。
🔁 運用フローまとめ
- Excel を閉じる
- export-personal.ps1 実行
- VS Code で編集
- import-personal.ps1 実行
- Excel を起動して動作確認
「Excelは実行環境」「VS Codeは開発環境」と割り切るのがコツです。
🧯 よくあるトラブルと対策
Excel が裏で起動している
→ import/export 前に完全終了する
モジュールが増殖する
→ import 時に同名削除を必ず行う
OneDrive 配下で不安定
→ ローカル固定パスを使用する
OneDrive 同期フォルダで PERSONAL.XLSB を触るのは、破損リスクが高く非推奨です。
🧩 この構成が向いているケース
- openpyxl + VBA の併用
- 個人用マクロの長期メンテナンス
- インストール制限のある業務端末
- GitHub 不可・ローカル Git のみ使用可能
「制約が多い現場」ほど、この構成の価値が出ます。