ラピードアクト株式会社

技術記事:ExcelVBAで仕事を効率化しようVol.1(VBA学習初級編)

みなさま初めまして!

初めてラピードアクトブログに記事を投稿させていただきます、ITソリューション事業部の林です。
普段は技術者として、お客さまのシステム構築に携わっておりますが、このたびIT技術に関する記事をブログ投稿させていただきます。

本記事で解説させていただくのは、「ExcelVBA」です。
インフラエンジニアの業務(OSやミドルウェア構築など)でも、ExcelVBAは作業効率化のために利用するシーンが多い技術です。
前提知識の無い方(初級者)向けの内容になっておりますので、ご理解のほどよろしくお願いします。

学習トピックとしては以下になります。

  1. ExcelVBAってなに?
  2. ExcelVBAの環境設定
  3. VBA開発環境(エディタ)
  4. Hello Worldプログラムを作る
  5. プログラムの実行方法
  6. プログラムの保存方法
  7. 終わりに

ExcelVBAの概要から簡単なプログラム作成までを、この記事で解説します。
初回ということで解説する内容が多く、少し長い記事になるかもしれませんが、記事を読みながら実際にExcelを操作して、覚えていっていただけたら幸いです。

【ExcelVBAってなに?】

一言にまとめると、Microsoft Excelに搭載されているプログラム開発言語、それがExcelVBAです。
ExcelVBAというのは通称で、「Excel」と「VBA」を組み合わせた単語です。

VBA(Visual Basic Applications)は、マイクロソフトのVisual Basicという開発言語をもとに生み出された開発言語になります。
マイクロソフトオフィス製品(Excel,Word,PowerPointなど)を操作できるのがその特徴です。
Wordで使えるVBAは「WordVBA」、PowerPointで使えるVBAは「PowerPointVBA」、という感じで、マイクロソフトオフィス系ソフトウェアで共通して、VBAでプログラム開発ができます。

なんでExcelを使うためにわざわざプログラムなんか、と思われた方もいるかもしれません。
それにズバリお答えすると、「人間がラクするため」です。
身もフタもない言い方ですが、これはあらゆるプログラムやシステムづくりにおいて共通する思想になります。

人間にラクをさせたシステムといえば、例えば電子メールなどがそうです。

人間のコミュニケーションを手軽に、そして便利にしてくれました。
手紙や電話よりも簡単に、他人へ向けて簡単にメッセージを送れる便利なシステムです。
もしも、世界の誰一人として「手紙や電話よりも簡単にメッセージを送りたい」という考えを持たなかったなら、電子メールというシステムは生み出されなかったでしょう。

ExcelVBAで作ったプログラムは、Excelを自動操作します。
「何百個のExcelファイルからセルをコピーして、別シートに貼り付けて、フォントを変えて・・・」みたいな面倒かつ単調な作業をプログラムがやってくれたら、楽だと思いませんか?
ExcelVBAなら、それができてしまうのです。

★まとめ★

・ExcelVBA=Excelで使用できるプログラム開発言語
・VBAというプログラム開発言語はマイクロソフトオフィスに標準搭載されている
・ExcelVBAのプログラムで仕事を効率化できる

【ExcelVBAの環境設定】

ここから、実際のExcelを使った操作になります。
Excel既定の設定では、VBAを利用するための基本的な環境設定はされていませんので、ユーザーが環境設定を行います。

手順① リボンに開発タブを表示する

1.「ファイル」「ホーム」などのリボンタブの上で右クリック→「リボンのユーザー設定」をクリックします

2.リボンのカスタマイズ画面で、右側リストの「開発」にチェックを入れます
3.右下のOKボタンをクリックします

手順② マクロのセキュリティ設定

1.Excelのリボンより「開発」を選択します

2.「コード」グループの「マクロのセキュリティ」をクリックします

3.セキュリティセンター(またはトラストセンター)の画面で「マクロの設定」より、「警告を表示してすべてのマクロを無効にする」を選択します

4.OKボタンをクリックします

以上で、ExcelでVBAを利用するための基本的な設定は完了です。

マクロのセキュリティ設定をしておくことで、意図しないマクロの実行を抑制することができます。
悪意のあるユーザーによるマクロには、Excelファイルを開いたとたんにマクロを実行させるパターンがあります。
それらに対処するために、マクロのセキュリティ設定は存在します。

安全なマクロと確信している場合は、Excelファイルを開いたときに表示されるセキュリティの警告で「コンテンツの有効化」をクリックします。この操作によって、マクロが実行可能になります。

【VBA開発環境(エディタ)】

プログラム開発するには、開発環境(エディタ)が必要です。
VBAの場合は、エディタ機能がExcelに標準搭載されていますので、簡単に開くことができます。

以下の開き方①②どちらかの操作を行ってみてください。

開き方① 「alt」キーを押しながら「F11」キーを押す

開き方② 「開発」リボンの左端にある「Visual Basic」アイコンをクリックします

表示されたウインドウがVBAのエディタです。
本記事は初級編ということで、エディタの中でも最初に覚えるべき2つの箇所について解説します。

コードウインドウ

VBAのプログラムソースコードを入力するエリアです。
初めてエディタを開いたときはグレーになっています。

プロジェクトエクスプローラ

現在開いているExcelファイルに存在するVBAのモジュールやフォームの一覧が表示されます。
初期状態では「VBAProject」「Microsoft Excel Object」「Sheet1」「Thisworkbook」などが表示されます。

【Hello Worldプログラムを作る】

エディタを開いたら、早速プログラムを作ってみましょう。

今回作成するのは、「Hello World」というメッセージを表示するプログラムです。
プログラム開発言語の解説本では初歩のプログラムとして、よく紹介されます。

VBAのプログラムを作るためには、まず「標準モジュール」を用意します。
標準モジュールとは、VBAのソースコードを記述するための専用の領域です。

標準モジュールの追加手順

1.エディタのツールバーから「挿入」→「標準モジュール」を選択してください。

2.プロジェクトエクスプローラに「標準モジュール」「Module1」が表示されます。

3.コードウインドウに「Book1.xlsx – Module1(コード)」のようなウインドウが表示されます。
この画面にVBAのソースコードを記述していきます。

さあ、ここからいよいよ、ソースコードを入力していきます。

プロシージャを定義する手順

今回作成するプログラムでは、最初に「Subプロシージャ」を定義する必要があります。
最初のうちは、「プロシージャ=プログラム」という程度に認識していてください。

1.コードウインドウの空白部分をクリックします

2.「sub△HelloWorld」と入力(△は半角スペース)して、Enterキーを押下します

3.自動的に「End△Sub」の文字が設定されます。

これで「HelloWorld」という名前のプロシージャが作られました。

「Sub△HelloWorld」の行から「End△Sub」の行までが、一つのプロシージャです。
「Sub△」の後ろに書かれた文字は、プロシージャの名前としてエディタが認識します。

「End△Sub」の文字が自動入力されたのは、エディタの入力補完機能によるものです。
「Sub△(プロシージャ名)」を入力してEnterキーを押すと、自動的に入力補完されます。

メッセージを表示するソースコードを入力する

1.「Sub△HelloWorld」の次の行に入力カーソルを移動し、Tabキーを押します。
2.続いて「Msgbox△“Hello△World.”」と入力します。

Sub HelloWorld()
    MsgBox "Hello World."
End Sub

Tabキーは、インデントを設定するために入力しています。
無ければならないということはありませんが、読みやすくするための手段としてインデントは有効ですので、積極的に使っていきましょう。

「Msgbox」はExcelシート手前にポップアップウインドウを表示する命令です。ウインドウに表示する文字列は、半角スペースを挟んだ後ろの位置に入力します。

VBAでは、「文字列はダブルクオーテーションで囲う」という規則がありますので、覚えておきましょう。

【プログラムの実行方法】

プログラム(プロシージャ)を実行する方法は複数ありますが、今回は2つだけ紹介します。
実行方法①②のどちらかを実行してみてください。

実行方法①

エディタ画面のまま、以下の赤枠の中に入力カーソルを移動させて、F5キーを押下します

実行方法②

1.Excel画面に移り、「Alt」キーを押しながら「F8」キーを押下します
2.マクロ名に「HelloWorld」と表示されている状態で、「実行」ボタンをクリックします

以下のポップアップが表示されれば、「Hello World」プログラムの動作確認は完了です。

完成おめでとうございます!

【プログラムの保存方法】

ExcelVBAプログラムを保存する方法は、通常のExcelファイルの保存とは少し違います。
通常のExcelファイルと同じ感覚で名前を付けて保存しようとすると、以下の警告が表示されます。

ここでは「いいえ」を押してください。(「はい」を押すとExcelVBAプログラムが保存されません!)

ExcelVBAプログラムはExcelファイルとして保存しなければなりませんので、ファイル形式に「Excelマクロ有効ブック」を選択する必要があります。

保存すると、「Book1.xlsm」というExcelファイルに、ExcelVBAプログラムが一緒に記録された状態になります。

「Excelマクロ」とは、ExcelVBAで作られたプログラムを表します。
このことから、ExcelVBAプログラムは「マクロ」あるいは「Excelマクロ」と呼ばれています。
「ExcelVBAプログラム」という呼び方も間違いではありませんが、やはり通じやすいのは「マクロ」「Excelマクロ」の方だと思います。

【終わりに】

今回は初級編第1回ということで、ExcelVBAの概要から簡単なプログラム(マクロ)作成まで、解説させていただきました。

ExcelVBAはプログラム作成のためのツールですが、今回解説した内容だけでは、まだまだお仕事で使えるプログラムは作れません。
みなさんがよりレベルの高いものを作れるよう、今後の記事で解説していきたいと考えています。
ここまでお付き合いいただきありがとうございました。

それでは、またお会いしましょう!