【VSCode】XVBAを使ってExcel VBA開発
以前VSCodeのインストールを紹介しましたが、今回はVSCodeの拡張機能「XVBA」を紹介致します。
XVBA
VSCodeの拡張機能です。
- ExcelVBAコードをVSCodeへインポートやエクスポートが可能
- VSCode上でマクロの実行が可能
などなど・・・
今回紹介する環境はWindows環境になります。
VSCodeのインストールは下記記事を参考にインストールを行ってください。
XVBAインストール
まずはVSCodeを起動し、メニューバーの「表示」⇒「拡張機能」(Ctr+Shift+X)を表示させます。
検索ボックスに「xvba」と入力すると2件表示されます。
- XVBA – Live Server VBA
- XVBA – Ribbon Menu
「XVBA – Live Server VBA」を選択し、インストールを行います。
以上でインストールは完了です。
開発を行うための設定
VSCodeで扱いたいファイルが存在するフォルダを指定します。
今回の検証用の前提条件として、フォルダはCドライブ直下に「VSCodeXVBA」を作成し、ファイル名は「xvba.xlsm」とします。
「xvba.xlsm」には、標準モジュールに「Xvba」というサブプロシージャが既に記述されているものとします。
VSCodeのメニューから「表示」⇒「エクスプローラー」(Ctrl+Shift+E)を表示させます。
続いてメニューから「ファイル」⇒「フォルダーを開く」(Ctrl+O)を選択し、開きたいフォルダを指定します。
※今回はC直下にある「VSCodeXVBA」を選択します。
赤枠がフォルダ名、黄色枠がファイル名が表示されています。
次に赤の楕円のあたり「XVBA – MACRO LIST」にマウスカーソルを合わせると、色々なメニューが表示されます。
その中の一番左側の「Bootstrap XVBA Config」をクリックして、「Create Excel VBA Project」を選択します。
「Create Excel VBA Project」を実行すると、Projectに必要なファイルが作成されます。
その中の「config.json」を開きます。
ファイルを開くと文字化けしているので、エンコードを「Shift-JIS」から「UTF-8」へ変更します。
文字化けが解消したら、赤枠の「excel_file」の設定を「index.xlsb」から「xvba.xlsm」に変更し保存します。
Excelからモジュールをインポート
「config.json」の「excel_file」設定を変更したことが確認できたら、「XBVA – MACRO LIST」付近にカーソルを合わせて、左から2番めの「Import – VBA」をクリックします。
インポートが完了すると、「vba-files」にExcelファイルに記述してあったモジュールファイルなどが表示されます。
VSCodeからマクロの実行
「XBVA – MACRO LIST」に「Xvba」と表示されている箇所の右側に黒色の▶ボタンが表示されています。
黒色の▶ボタン(RunMacro)をクリックすると、マクロを実行することができます。
VSCodeからExcelへエクスポート
VSCodeでModule1にサブプロシージャを追加してみます。
Sub xvbaExport() MsgBox "XVBA Export" End Sub
コードの追記が終わったらエクスポートし、Excelに反映させます。
「XBVA – MACRO LIST」付近にカーソルを合わせて、左から4番めの「Export – VBA」をクリックします。
「Development」をクリックします。
Excelへのエクスポートが完了すると赤枠のバナーが表示されます。
ExcelのVBAエディタでも確認をします。
赤枠の部分が追加されてますね。
これで開発環境は整いました。
あとはVSCodeでコーディングして、エクスポートを繰り返すだけです。
ディスカッション
コメント一覧
excel_fileを書き換え、手順の「Excelからモジュールをインポート」をしようとしたところつまってしまったのでお伺いしたいです。
インポートをしようとすると、
「Errorin Export Modules:オートメーション中の操作中にファイル名またはクラス名を見つけられませんでした。」と表示され、インポートができません。
VScode上ではexcel_server.logに「2022/12/05 16:49:04 – Error:Error inExportModules」といった形でログが残っています。
指定されているファイルの階層が間違っている可能性があります。
config.jsonと同じ階層に取り込みたいエクセルファイルを配置して取り込みをしてみてください。
同じ階層にしたらできました!
迅速な対応ありがとうございます。助かりました
Xdebug.printx “あいう”を実行すると
VSCode出力ウィンドウのVBA Immediate Windowで文字化けします
2023/01/28 18:21:21 – String: ??????
日本語表示させる方法ご存知でしょうか?
最近使ってないので、ちょっとわからないです。
お力になれず申し訳ありません
インポートをしようとすると、
「Errorin Export Modules:プログラミングによるVisual Basic プロジェクトへのアクセスは信頼性に欠けます。と表示され、先に進めません。
ご教授いただきたく存じます。
恐らくですが、設定が初期のままのような気がしますので、下記サイト参考に設定変更を試して診てください
https://bayashita.com/p/entry/show/279
お忙しい中ありがとうございます!
無事にインポートすることができました。