メインコンテンツへスキップ
見出し画像

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自体の環境設定や、自分が遭遇したトラブルなどについて説明する予定です。

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

     
     
    大学3年生を5回繰り返した経験からforループを学び、プログラミングに興味を持ちました。 現在は地盤改良の設計をしています。 「業務改善×プログラミング」、「研究×数学×プログラミング」を軸に書いてます。 ノンプロ研 所属。VBA/ PAD/ Python/ 統計/ 数値解析

    あなたへのおすすめ