見出し画像

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

画像2

1.作業フォルダの指定と設定

VSCodeで扱いたいファイルが存在するフォルダを指定します。

今回は、"XVBABook.xlsm"というファイルが"MyXVBA"というフォルダにあるとします。

画像3


"XVBABook.xlsm"は、標準モジュール"Module1"に"Hello"というSubプロシージャを含むものとします。

画像6

VSCodeでフォルダを開くと、"logs"というフォルダが自動生成されます。

画像5

「XVBA-LIST VBA MACROS」にマウスをホバーすると、様々なボタンが表示されます。

画像7


「Bootstrap XVBA Config」を押して、「Create Excel VBA Project」を選択します。

画像8

様々なファイル、フォルダが作成されます。その中の"config.json"を開きます。

画像9

★最重要です。"excel_file"を"index.xlsb"から"XVBABook.xlsm"に変更します。

画像11

2.インポート

"excel_file"の名前を変更したことを確認し、「import」をクリックします。

画像12

"vba-files"の中身を確認します。

画像13

vba-files
│
├─ Class ─┬─ Sheet1.cls
│         └─ Thisworkbook.cls
└─ Module ─ Module1.bas

画像14

"XVBABook.xlsm"と同じ構成となっています。Module1を開くと、VBEで書かれていたスクリプトと同じものが表示されます。

画像15

3.マクロの実行

「XVBA-LIST VBA MACROS」内に、"Sub Hello()"が表示されます。「Run Macro」をクリックすると実行できます。

画像15

画像14

4.エクスポート

今度は、 VSCodeで"Module1"に"GoodBye"というサブプロシージャを追加し、マクロを実行してみます。

Sub GoodBye()
   MsgBox "GoodBye!"
End Sub

画像16

すると、エラーが発生します。

画像17

これは、"GoodBye"というSubプロシージャが、"XVBABook.xlsm"に存在しないことから起こるエラーです。

画像18

VSCode内で変更したコードを反映させるため、エクスポートを行います。インポートと同じように、「XVBA-LIST VBA MACROS」にホバー、「Export」ボタンをクリックします。

画像19

「Production」を選択します。

画像20

無事、エクスポートされました。

画像21

再度、"Sub GoodBye"を実行します。

画像22

今度は無事にマクロを実行できました。

画像23

おわりに

一度設定を済ませてしまえば、「VSCodeで記述→エクスポート」の繰り返しで開発できます。

次回は、「XVBAで注意すべき点」書きます。VSCode自体の環境設定や、自分が遭遇したトラブルなどについて説明する予定です。

ここまで読んで下さってありがとうございました。

この記事が気に入ったらサポートをしてみませんか?