「大人の教養・知識・気付き」を伸ばすブログ

一流の大人(ビジネスマン、政治家、リーダー…)として知っておきたい、教養・社会動向を意外なところから取り上げ学ぶことで“気付く力”を伸ばすブログです。データ分析・語学に力点を置いています。 →現在、コンサルタントの雛になるべく、少しずつ勉強中です(※2024年1月21日改訂)。

MENU

Excel VBAをはじめから(その01/X)

 仕事で未だに使うことのある\mathrm{Excel\ VBA}を改めて体系的に学びたく

を読んでいく。

はじめに

 \mathrm{Excel\ VBA}は他のプログラミング言語や開発環境とは異なる2つの特徴が存在する。

  • 開発・実行環境が\mathrm{Excel}であること
  • 長い歴史を持つ言語のため、わりとゴチャゴチャしていること

1. VBAを始めるための準備と仕組み

1.1 VBAで何ができるのか、あるいは何をしたいのかの整理

 \mathrm{VBA}とは\mathrm{Visual} \mathrm{Basic} \mathrm{for} \mathrm{Applications}の略で、\mathrm{Excel}をプログラムで操作するためのプログラム言語である。
 自動化の醍醐味である「大量の作業を一瞬で終わらせるための仕組み」である繰り返し処理や「セルの値やその他の条件を判断してプログラムの流れを変更する仕組み」である条件分岐も用意されている。
 またファイルのリネームなど\mathrm{Windows}の機能と言える処理も\mathrm{VBA}で行うことが可能である。

 更に\mathrm{VBA}には「ボタン」や「リストボックス」など「ユーザーの操作を助ける仕組み」である\mathrm{UI}を作成するための各種のパーツも用意されている。

仕組み 用途と概略
\mathrm{Excel}の機能のプログラム化 普段\mathrm{Excel}で行なっている業務をプログラムとして記述し、実行するだけで直ぐに終えられるようにする仕組み
プログラムに流れを付ける仕組み 回数を繰り返す、全シート繰り返すなど、作業を繰り返したり、セルの値に応じて実行するプログラムを変更するなど、条件に応じて行う作業に変化を付けたりするようにする仕組み
\mathrm{Excel}だけでは実現できない機能のプログラム化 ファイルの操作や\mathrm{Access}のデータベースの操作など、\mathrm{Excel}だけでは実行できない作業を機能拡張する形で実行する仕組み
\mathrm{UI}作成用の仕組み シート上にボタンやチェックボックスを配置したり、専用のフォーム画面を作成して\mathrm{Excel}から利用できる仕組み


 なお「マクロ」は\mathrm{Excel}の機能の1つで、「複数手順の操作をひとまとまりの操作として登録し、再実行するための機能」である。このマクロ機能で実行する内容をプログラムとして自由に記録・編集できるが、その際に用いる記述ルールが「\mathrm{VBA}」である。とはいえいずれも「\mathrm{Excel}を自動化する仕組み」程度のニュアンスで用いられている。

1.2 VBAの概要と使うための準備

 \mathrm{VBA}は特徴として

  • \mathrm{Excel}を操作するための言語で、
  • 基本はオブジェクト指向である。
  • しかし(特に古い時代の遺産として)オブジェクト指向ではない箇所もある。
  • そのため良い意味でも悪い意味でもいい加減に書いても動く。

 \mathrm{VBA}は、\mathrm{Excel}の各機能をオブジェクトとして捉え実行したい命令を記述する。

 \mathrm{VBA}をスムースに開発するには、リボンに「開発」タブを追加しておく。

1.3 VBEの使い方

 マクロの確認・編集を行うには専用の\mathrm{VBE}(\mathrm{Visual} \mathrm{Basic} \mathrm{Editor})を利用する。\mathrm{VBE}は「開発」タブの一番左端にある\mathrm{Visual} \mathrm{Basic}ボタンを押すことで表示される。

場所 用途
①メニュー、ツールバー \mathrm{VBE}の各種機能を呼び出す。
②プロジェクトエクスプローラ ブック内の「モジュール」の構成を確認・編集する。
③プロパティウィンドウ 選択したオブジェクトやコントロールの設定を行うウィンドウ。
④コードウィンドウ プログラムを確認・設定する\mathrm{VBE}のメイン・ウィンドウ。
⑤イミディエイトウィンドウ デバッグ時に値の確認を行なったり、簡単なコードをそのまま記述して実行したりできる場所。

 表示した\mathrm{VBE}画面から\mathrm{Excel}の画面に戻るには、\mathrm{VBE}画面右上の×ボタンを押して閉じるか、ツールバー左端の\mathrm{Excel}アイコンボタンを押す。また\mathrm{Alt}+\mathrm{F11}キーで\mathrm{VBE}\mathrm{Excel}画面の表示を切り替えることができる。

1.4 一番小さなマクロの構成

 簡単なマクロを作成してみる。まずは\mathrm{Excel}を起動し、新規ブックを作成する。次いで「開発」タブの\mathrm{Visual} \mathrm{Basic}ボタンを押して\mathrm{VBE}を表示する。

1.4.1 標準モジュールを追加する

 \mathrm{VBE}のメニューから「挿入」→「標準モジュール」を選択すると、プロジェクトエクスプローラー内の「標準モジュール」フォルダーに「Module1」という名前の標準モジュールが追加される。

1.4.2 コードの入力

 コードウィンドウの適当な位置に以下のようにコードを入力する。\mathrm{Sub}\mathrm{End}の間は\mathrm{Tab}キーを1回押してインデントを下げる。

Sub macro1()
    MsgBox "Hello VBA!!"
End Sub
1.4.3 マクロの実行

 マクロを実行するには、ツールバー\mathrm{Sub}/ユーザーフォームの実行ボタンを押す。

1.4.4 マクロを作成する作業のまとめ
  • マクロの「入れ物」(モジュール)を用意する
  • マクロの「外枠」(\mathrm{Sub})を作成する
  • マクロの内容を記述する
1.4.5 コメントの付け方と改行の仕方

 \mathrm{VBA}では「'(シングルクォーテーション)」を入力するとそれ以降の部分がコメントとして扱われる。
 複数行をまとめてコメントにするには、「コメントブロック」機能を利用する。コメントにしたい行を選択したまま、メニューバーで右クリックして「編集」を選択して「編集」ツールバーを表示する。そのツールバーで「コメントブロック」ボタンを押す。コメントを外すには「非コメントブロック」ボタンを押す。


 また\mathrm{VBA}は1行を1かたまりと見なす。そのためあまりに長くて改行したい場合には特殊な処理をする必要がある。単語の切れ目で改行するには「 _」(半角スペース・アンダーバー)を利用する。

1.5 作ったマクロをどうやって保存するか

 マクロを作成したブックを保存するには「ファイルの種類」を\mathrm{Excel}マクロ有効ブック*\mathrm{.xlsm}にした上で保存する。

プライバシーポリシー お問い合わせ