以前、以下の記事で「プログラミング言語の選択に迷ったときのおすすめ」として Excel を紹介しました。
特にプログラミング初心者や、Excel をもう少し使いこなしたいという方にはおすすめです。
プログラミング言語としては初心者にも扱いやすくて簡単に始められますし、極めればかなり深いところまでプログラミングの知識を深めることもできます。
ただし、VBA は大規模開発にはあまり向かないのでシステムエンジニアやプログラマーでの将来を考えている場合は、次のステップへの足掛かりとして考えてください。
長くなってしまったので、その壱、その弐の 2回に分割します。
その壱は VBA の説明と VBA 画面 (VBE) の説明だけで、概要やら画面の名前とかなので、ざっくり読んでその弐に進んでください。
※ Excel のバージョンは 2021 を使用しています
VBA とは
VBA (Visual Basic for Applications) とは、Microsoft Office 製品のアプリケーション機能を拡張できるプログラミング言語です。
Excel や Word などの集計作業や帳票作成をプログラミングすることにより、時間のかかる作業をボタン一つで完結させることもできます。
また、フォームと呼ばれる機能で、電卓のようなアプリケーション画面を作成することもできます。
![手作り電卓](https://se-kowaza.com/wp-content/uploads/2024/11/774f3259633fd2731e3a042dbe56f9e4.png)
ちょっとセンスないですが、もっときれいなものも作れます・・・。
VBA の画面
VBA のプログラムを作成するには Excel から VBE (Visual Basic Editor) を開く必要があります。
名前とかは別に知らなくてもよいと思います。(私も今回知りました・・・)
マクロ画面や Excel メニューの追加などの方法もあるようですが、とりあえず VBE を開くだけであれば、以下のコードの表示が簡単です。
コードの表示
Excel シートを右クリックし、表示されたメニューからコードの表示をクリックすると表示できます。
![コードの表示](https://se-kowaza.com/wp-content/uploads/2024/10/5118458e5bb4ac92202789d2563380b3.png)
下は表示された VBA の画面、コードが書かれていないので真っ白です。
![VBE](https://se-kowaza.com/wp-content/uploads/2024/10/dab14f218c64a2328d3b1299e5bc2e6b.png)
画面の説明
画面説明の前に・・・
コードが書かれているほうがわかりやすいので、以下の「マクロの作成」で作成したコードを使用します。
興味がある方は合わせてご覧ください。
コード作成だけなら 5 – 10分程度でできると思います。
以前の記事で Excel マクロ有効ブックがあればそのまま使えます。
プロジェクトエクスプローラー
Excel ファイル (Book) の情報です、保存場所の確認やコードを見るときに使用します。
Windows のエクスプローラーをイメージするとわかりやすいです。
![プロジェクトエクスプローラー](https://se-kowaza.com/wp-content/uploads/2024/11/847575d278f4bdb27e527f881b9bd455.png)
表示されていない、もしくは × ボタンで閉じてしまった場合は、表示メニューのプロジェクトエクスプローラーをクリックすると再表示できます。
※ 「Ctrl + R」のショートカットでも同様
![プロジェクトエクスプローラー (メニュー)](https://se-kowaza.com/wp-content/uploads/2024/11/4bf1b064a2dd1d753eb08bfd32905726.png)
★プロジェクトエクスプローラーに表示されているもの
VBAProject
Excel VBA の構成を管理しているもの
はじめは大きな塊くらいの認識で・・・
Microsoft Excel Objects
Excel シートなどのオブジェクト
シートを追加すると増えます
シート内にプログラミングも可能
標準モジュール
マクロや自作プログラムなど
フォーム
アプリケーション画面などを管理
※ VBA とはに書いた手作り電卓など
など
参考
オブジェクトとは、直訳すると物体、対象、ものなどの意味があります。
プログラミング上では Excel シートやセル、ボタンなど対象を特定するためのもの (塊とか枠) と思ってください。
プログラミングでのオブジェクトはかなり奥が深いものなのではじめは感覚的なもので大丈夫です。
プロパティウィンドウ
プロジェクトエクスプローラーで選択している項目のプロパティを参照します。
プロパティはプログラムで参照したり変更したりできます。
![プロパティウィンドウ](https://se-kowaza.com/wp-content/uploads/2024/11/64a529265445d0b4d8571064defd05df.png)
表示されていない、もしくは × ボタンで閉じてしまった場合は、表示メニューのプロパティウィンドウをクリックすると再表示できます。
※ F4 キーでも同様
![プロパティウィンドウ (メニュー)](https://se-kowaza.com/wp-content/uploads/2024/11/487ce5ce9a460a163ecbc8da2939ac10.png)
参考
Sheet1 を選択した場合は以下のように表示されます。
![プロパティウィンドウ (Sheet 選択)](https://se-kowaza.com/wp-content/uploads/2024/11/4a33de1190d77153985212681c53a424.png)
★シート (Worksheet) のプロパティでよく使うもの
オブジェクト名
プログラム上で対象を識別するための名前
Name
表示しているシート名
Visible
シートの可視性 (シートの表示/非表示 設定)
使い方サンプル
プログラムで Excel シート名を変更するサンプルです。
※ Excel シートのオブジェクト名が Sheet1 であることが前提
Sheet1 という Excel オブジェクトの Name 属性を “VBAで変更” という値に変更。
Sub シート名変更()
Sheet1.Name = "VBAで変更"
End Sub
上記のコードを標準モジュール (マクロで作成したコード) の最下部にコピペするとマクロ実行できます。
![シート名変更コード](https://se-kowaza.com/wp-content/uploads/2024/11/843a0ff619f17f295183a398e0569dba.png)
マクロの表示からマクロ画面を表示し、追加された「シート名変更」を実行。
![マクロの実行](https://se-kowaza.com/wp-content/uploads/2024/11/178a301b17e57d1b9d03ae1b14487b0d.png)
実行結果
シート名が変わりました。
![シート変更 (実行結果)](https://se-kowaza.com/wp-content/uploads/2024/11/f3caeda997381effba5e6715e108aecd.png)
プロジェクトエクスプローラー上の名称と、プロパティの Name 属性も変わります。
![変更後プロパティ](https://se-kowaza.com/wp-content/uploads/2024/11/b04a2d3c8970530463d9343222a55f00.png)
コードウィンドウ
コードウィンドウは実際にコードが書かれる部分です。
計算式や条件分岐などを使ってプログラミングします。
![コードウィンドウ](https://se-kowaza.com/wp-content/uploads/2024/11/10fa7abb86dd01500bf5577df4d71575.png)
表示されていない、もしくは × ボタンで閉じてしまった場合は、表示メニューのコードをクリックすると再表示できます。
※ F7 もしくは、プロジェクトエクスプローラーの項目をダブルクリックでも同様
※ フォルダには使用できません
![コード (メニュー)](https://se-kowaza.com/wp-content/uploads/2024/11/51ee9d74db247e27e95572a14092b23c-1.png)
コードウィンドウは分割可能
コードウィンドウはシートやモジュールごとにウィンドウが分かれています。
ウィンドウを元のサイズに戻すをクリックすることで自由に配置することができ、他のコードを見ながらプログラミングすることもできます。
![ウィンドウを元のサイズに戻す](https://se-kowaza.com/wp-content/uploads/2024/11/10d5cc8562817d037d039a5aab905b08-1.png)
ほとんどの場合は左右に並べて比較するか、新しく作成するときに参考にするかですかね・・・
![コードウィンドウ (元のサイズ)](https://se-kowaza.com/wp-content/uploads/2024/11/f7cc13ee3269b6935dfb0556ceedf361.png)
まとめ
VBA と画面の説明でした。
概要と画面説明だけで結構なボリュームになりました・・・。
次回は実際にコードを編集します。
実際にコード編集して動かすことでプログラミングの面白さが伝わると思います。(伝わるはず・・・)
興味がある方は引き続きよろしくお願いします。