XVBA~VSCodeでExcel VBAの開発~
おはようございます。shikao29です。
本日は、「XVBA」というVSCodeの拡張機能をご紹介します。
XVBAとは?
VSCodeの拡張機能で、主に以下のことが可能になります。
1.ExcelVBAのコード←→VSCodeへのインポート/エクスポート
(bas,cls,frm,frx形式で指定フォルダに格納)
2.(VSCode上での)マクロの実行
3.ユーザースニペットの使用
以下、Windows環境、VSCode自体はインストール済として進めます。
0.インストール
「拡張機能」をクリックし、検索窓で「XVBA」と入力します。「XVBA-Live Server」と「XVBA - Ribbon Menu」2つがHitします。
今回は、「XVBA-Live Server」の「Install」をクリックします。
1.作業フォルダの指定と設定
VSCodeで扱いたいファイルが存在するフォルダを指定します。
今回は、"XVBABook.xlsm"というファイルが"MyXVBA"というフォルダにあるとします。
"XVBABook.xlsm"は、標準モジュール"Module1"に"Hello"というSubプロシージャを含むものとします。
VSCodeでフォルダを開くと、"logs"というフォルダが自動生成されます。
「XVBA-LIST VBA MACROS」にマウスをホバーすると、様々なボタンが表示されます。
「Bootstrap XVBA Config」を押して、「Create Excel VBA Project」を選択します。
様々なファイル、フォルダが作成されます。その中の"config.json"を開きます。
★最重要です。"excel_file"を"index.xlsb"から"XVBABook.xlsm"に変更します。
2.インポート
"excel_file"の名前を変更したことを確認し、「import」をクリックします。
"vba-files"の中身を確認します。
vba-files
│
├─ Class ─┬─ Sheet1.cls
│ └─ Thisworkbook.cls
└─ Module ─ Module1.bas
"XVBABook.xlsm"と同じ構成となっています。Module1を開くと、VBEで書かれていたスクリプトと同じものが表示されます。
3.マクロの実行
「XVBA-LIST VBA MACROS」内に、"Sub Hello()"が表示されます。「Run Macro」をクリックすると実行できます。
4.エクスポート
今度は、 VSCodeで"Module1"に"GoodBye"というサブプロシージャを追加し、マクロを実行してみます。
Sub GoodBye()
MsgBox "GoodBye!"
End Sub
すると、エラーが発生します。
これは、"GoodBye"というSubプロシージャが、"XVBABook.xlsm"に存在しないことから起こるエラーです。
VSCode内で変更したコードを反映させるため、エクスポートを行います。インポートと同じように、「XVBA-LIST VBA MACROS」にホバー、「Export」ボタンをクリックします。
「Production」を選択します。
無事、エクスポートされました。
再度、"Sub GoodBye"を実行します。
今度は無事にマクロを実行できました。
おわりに
一度設定を済ませてしまえば、「VSCodeで記述→エクスポート」の繰り返しで開発できます。
次回は、「XVBAで注意すべき点」書きます。VSCode自体の環境設定や、自分が遭遇したトラブルなどについて説明する予定です。
ここまで読んで下さってありがとうございました。