はじめに
Excel VBAをVS Codeで編集するための拡張機能を作成しました。
何番煎じの拡張機能か分かりませんが自分が使いやすいように作ってみました。
既存の拡張機能
主な利点
- Excel VBAをVS Codeから編集可能です。
- Excel VBAをGitでバージョン管理可能です。
- Excel VBAを生成AIで支援可能です。
- 拡張機能固有の設定無しですぐに利用可能です。
- 同時にインストールされるExcel VBA AddinによりExcel側からも操作可能です。
機能
- VS Code - Excel VBA Extension
- Load VBA / Save VBA - VBAを読込・編集・保存ができます。
- Load CSV / Save CSV - CSV読込・編集・保存ができます。
- Load CustomUI / Save CustomUI - 読込・編集・保存ができます。
- Run Sub - VS CodeからSub プロシージャを実行できます。
- Compare VBA / Compare CSV - エクスポートしたファイルとExcel VBA、Excel CSVシートの差分を確認できます。
- Excel - Excel VBA Addin
- Open with VS Code - Excel からフォルダを VS Code で開きます。
- Open with Explorer - Excel からフォルダを Explorer で開きます。
- Load VBA / Save VBA - Excel からExcel VBA を読込・保存できます。
- Load CSV / Save CSV - Excel からシートを CSV として読込・保存できます。
- その他機能
- Graph Paper - 選択シートを方眼紙にします。
- Snap to Grid - オブジェクトをグリッドに吸着させます。
- One Side Connector - 片側のみ接続されていないコネクタを検出します。
- Export PNG - シートを画像でエクスポート
機能関連図
インストールとセットアップ
ステップ 1:VS Codeで拡張機能のインストール
VS Code で拡張機能をインストールします。
-
VS Code を起動
-
Ctrl+Shift+Xで拡張機能を検索 -
Excel VBA Extensionと入力 -
[インストール] をクリック
- Excel VBA Extensionの有効化処理でExcel VBA AddinがOfficeアドインフォルダにコピーされます。以後、VS Codeが起動されるたびにExcel VBA AddinがOfficeアドインフォルダにコピーされます。
ステップ 2:Excel の設定
Excel VBA ExtensionからExcelにアクセスできるようにします。
-
Excel を起動
-
[ファイル] → [オプション] → [トラストセンター]
-
[トラストセンターの設定]をクリック
-
[マクロ設定]で[VBA プロジェクト オブジェクト モデルへのアクセスを信頼する]をチェック
-
[OK] をクリック
以上でインストールとセットアップは完了です。
Excel VBA Extension 使用例
使用例 1:VS Codeで空のマクロファイルを作成する
-
Ctrl+Shift+Pでコマンドパレットを開く -
Create: New Fileを選択 -
New Excel Book with CustomUI as Macroを選択 -
ファイル名(拡張子無し)を入力(例:book)
-
book.xlsmが作成されるのでエクスプローラビューから選択 -
book.xlsmのエディタタイトルのOpen Excel Bookアイコンをクリック -
book.xlsmのエディタタイトルのLoad VBA from Excel Bookアイコンをクリック -
ModuleSampleMacro.basのMsgBoxの出力文字列を修正 -
ModuleSampleMacro.basのエディタタイトルのSave VBA to Excel Bookアイコンをクリック -
Excelのタブから
ButtonSampleMacroをクリック
使用例 2:サブルーチンを修正してすぐに実行
-
ModuleSampleMacro.basのMsgBoxの出力文字列を更に修正 -
SampleMacroサブルーチンの範囲にカーソルを置く -
ModuleSampleMacro.basのエディタタイトルのRun VBA Sub at Cursorアイコンをクリック -
SampleMacroを実行
使用例 3:エクスポートしたファイルとの比較
-
ModuleSampleMacro.basのMsgBoxの出力文字列を更に修正 -
ModuleSampleMacro.basのエディタタイトルのCompare VBA with Excel Bookアイコンをクリック
使用例 4:CustomUIを修正
-
book.xlsmのエディタタイトルのLoad CustomUI from Excel Bookをクリック -
customUI.xmのタブ、グループ、ボタンのlabelを修正 -
book.xlsmを閉じる -
book.xlsmのエディタタイトルのSave CustomUI to Excel Book (Close Excel first)をクリック -
book.xlsmを開く -
タブ、グループ、ボタンが変更されていることを確認
補足
対象データ種類別
- VBA
- Save VBAでは一旦すべてのモジュールを削除してから登録する。不慮の事故を避けるためLoad VBAしたファイルは構成管理すること
- VS Code側で.bas, .clsを追加してSave VBAすることは可能
- VS Code側で.frmを追加してSave VBAすることは不可能。.frmと.frxは一緒に登録することが必要なため
- CSV
- シート名が.csvで終わるとCSVシートとして扱われ、
Load CSV from Excel Book,Save CSV to Excel Bookの対象となる
- シート名が.csvで終わるとCSVシートとして扱われ、
- PNG
- シート名が.pngで終わるとPNGシートとして扱われ、
Export PNG from Excel Bookの対象となる
- シート名が.pngで終わるとPNGシートとして扱われ、
- CustomUI.xml
- CustomUI.xmlを登録済みの.xlsm / .xlamでは
Load CustomUI from Excel Book,Save CustomUI from Excel Bookが可能 - 素の .xlsm / .xlamにはcustomUI.xmlは格納されていないため何らかの手段で登録するか、
New Excel Book with CustomUI as Macroを使用すること
- CustomUI.xmlを登録済みの.xlsm / .xlamでは
Excelファイル種類別対応機能
| 機能 | .xlsx | .xlsm | .xlam |
|---|---|---|---|
Load VBA from Excel Book |
- | ○ | ○ |
Save VBA to Excel Book |
- | ○ | ○(1) |
Load CustomUI from Excel Book |
- | ○ | ○ |
Save CustomUI to Excel Book |
- | ○ | ○ |
Load CSV from Excel Book |
○ | ○ | - |
Save CSV to Excel Book |
○ | ○ | - |
Export PNG from Excel Book |
○ | ○ | - |
(1) .xlamのSave VBAでは直接保存できない。アドインのためOfficeアドインフォルダに保存しようとするため開発サイクルが回らない。VBエディタのツールバーから保存すること。
未説明機能
- Excel VBA Addinについては別途説明
















