支援対象地域:札幌、仙台、関東、愛知、関西、広島、福岡


Excel VBA キホンのキ

Excel VBAって?

Excel VBAとはMicrosoft社のプログラミング言語である「Microsoft Visual Basic」をOffice製品に導入したもので、 「Visual Basic for Applications」の略称です。ExcelでVBAを使えば手作業で行っている定型的な業務を自動化させることができたり、Excelで簡単なアプリケーションを作成することもできます。

Excelを自動化する機能の事はマクロと呼ばれており、マクロはVBA言語で書かれています。つまり、VBA言語で書かれたプログラム=マクロを動作させることによってExcelを自動化することができるのです。またExcelのマクロ機能の中には実際の操作をマクロとして記録する「マクロの記録」という機能も搭載されています。

言語としてのVBAは英単語がそのまま使われていることが多く、英単語を意味と一緒に理解することでコードの意味も理解できるようになってきます。VBAを理解するためには、実際にVBAを書くことが一番の近道です。

Visual Basic Editorの起動

早速、VBAに触れていきましょう。Excelを実行し、「開発」タブからVisual Basicを起動してください。



開発タブが見当たらない方は、「ファイル」→「オプション」→「リボンのユーザー設定」より「開発」にチェックを入れてください。



起動すると、このような画面が出て、VBE(Visual Basic Editor)が起動できたことになります。

VBAで使われるコードエディタ、コンパイラ、デバッガ、その他支援ツールが統合された開発環境がVBEです。


ではメニューの「挿入」→「標準モジュール」を選択し、標準モジュールを挿入しましょう。




これでコードウィンドウが追加され、プログラムコードを書く準備ができました。

基本文法

Subプロシージャ

VBAではプログラムを記述した後に、Excelのファイル上でプログラムを呼び出してやる必要があります。その呼び出す単位となるのがプロシージャです。

プロシージャのコマンド構文はこのように記述します。


Sub プロシージャ名()

End Sub

プロシージャは「Sub」で初めて「End Sub」で終わります。この間にプログラムコードを記述していきます。プロシージャ名はアルファベット、ひらがな、漢字などを使用できます。数字も使用できますが、プロシージャ名の先頭には文字を使わなければなりません。また記号は唯一"_"(アンダーバー)が使用できますが、その他の記号や、スペースも使用不可となっています。

では、試しに以下のコマンドを記述してみましょう。


Sub テスト()
    Cells(1, 1).Select
End Sub

そして、このコードの次の行にまた「Sub」で始まるプロシージャを記述してください。プロシージャ名は「テスト2」としてみましょうか。すると、「End Sub」の行と「Sub」の行の間に破線が表示されました。


この破線でプログラムが区切られているので、1つのモジュール内に複数のコードを記述することができます。そしてこのプログラムの一つ一つをマクロとして実行することができます。

セルの指定

先程記述したコードに「Cells(1,1)」という文字列がありますが、これは「セルの1行目、1列目のセルを指定する」という意味です。文字通りの意味で、皆さんもすぐ理解できたと思うのですが、一つだけ普段のExcelの使い方とは違う箇所があります。どこかおわかりでしょうか?……

それは指定する順番です。関数操作をする際には、例えば

「=SUM(A1,A2)」

のように列番号、行番号の順番で指定するのですが、VBAでは

「cells(行番号,列番号)」

と指定します。「Range」というコードを使えばいつもの表記のようにセルを指定できますが、Rangeという言葉通り、本来は範囲を指定するものですので、単一のセルを指定するときはCellsのコードを使用しましょう。

セルの指定ができたら、「テスト2」のプロシージャに今度はこのように記述してください。


Sub テスト2()
    Cells(1, 1).Value = 123
    Cells(2, 1).Value = "こんにちは"
End Sub

「.Value」はその名の通り値を入力するコードとなります。数字ならば1行目のように「123」と記述すれば世良いのですが、文字列はそれでは上手く動作しません。文字列入力の際には必ず「""」(ダブルクォーテーション)で囲ってください。

マクロの実行

では実際にマクロを実行してみましょう。Excelのシートのウィンドウに戻り、「マクロ」のボタンをクリックしてみてください。


すると先程記述した「テスト1」、「テスト2」の項目が表示されています。


「テスト1」を実行すると


セルが選択されました。

「テスト2」を実行すると


「Value」で記述した内容が反映されています。

このようにVBEで作成したプログラムは、マクロとしてVBEやExcel上から実行することが出来ます。

プログラムの保存

VBEで作成したプログラムは、元になっているExcelに含まれています。その為、Excelのブックを保存すれば自動的にVBEで記述したプログラムも保存されます。

ブックの保存はVBE上でも可能ですので、プログラムを変更したら必要に応じて随時保存して下さい。

まとめ

今回は、VBAの基本となる内容を紹介しました。プログラミング言語と聞くと難しそうに感じるかもしれませんが、VBAは理解しやすい言語であるということは実際に操作をしてみて感じていただけたのではないでしょうか。