この記事で学ぶこと
- そもそもVBAとは?
- マクロを有効にしてみよう!
- 開発タブを表示してエディター画面を開いてみよう!
1.そもそもVBAとは?
皆さんはMicrosoft社さんの有名office計算ソフト「Excel」はご存知のことでしょう。 日常生活での何気ない計算から、仕事では決算書の作成などの各種書類の作成やデータの集計・分析まで、非常に幅広く活用できる大変便利かつ日本で大きなシェアを誇る表計算ソフトです。 このエクセルを事務仕事で使っている人が一度は聞いたことがあるであろう言葉があります。 それは「マクロ」や「VBA」というワードです。 これらはよく混同されて使われていますが、厳密には別物です。 「マクロ」とは一般的に、アプリケーションソフトなどであらかじめ複数の操作をまとめて一つにし、その一連のまとまりを呼び出すことで複数の操作を自動で行うことができる拡張機能のことを言います。 そして、このマクロという機能を裏で操作しているもの、、、 それが「VBA」なのです。 「VBA」は正式には「Visual Basic for Application」の略で、Microsoft社のプログラミング言語「Visual Basic」をベースに作られたoffice製品のための言語です。 つまり「VBA」は、office製品全般で扱うことのできる言語で、ExcelだけでなくWordやPowerPointでも使えるのです(一般的にあまり使わないので本サイトでは割愛しています)。
2.マクロを有効にしてみよう!
さあ、それでは実際に「VBA」がどんなものか正体を探ってみましょう! まずはExcelを立ち上げ、マクロを有効にします。 ”ファイル” タブから ”オプション” を押し、Excelのオプションを開きます。 そこからセキュリティセンターの設定を押します。
図1.Excelのオプションからセキュリティセンターを開く
セキュリティセンターを開くと下図のとおりマクロの設定”から”警告を表示してすべてのマクロを無効にする”にチェックを入れます。 図2.セキュリティセンターでマクロの設定を変更する
ここで注意が必要なのは、マクロを有効にすることは、セキュリティの低下につながるということです。 前述のとおりマクロという機能は”作業の自動化”であり、使い方によっては人のパソコンのデータを消去したりする、ウイルスを作成することも可能です。 しかし、今回選択した”警告を表示してすべてのマクロを無効にする”であれば、下図のように、マクロファイル(拡張子:.xlsm)を開いた際に一度警告がでて一旦マクロを無効化します。 警告内に”コンテンツの有効化”というボタンがあるので、安心できるファイルであれば、そこで有効化すればよいのです。
図3.マクロファイル(拡張子:.xlsm)を開いた際にコンテンツを有効化する
これでネットにあがっているマクロファイルや人に作ってもらったマクロファイルを活用することができます。 次にマクロファイルを作成、編集するために”開発”タブを出現させましょう! Excelファイルを開き、先ほどのセキュリティセンターを開くのと同じ要領で、”ファイル” タブから ”オプション” を押しExcelのオプションを開きます。”リボンのユーザー設定”から下図のとおり”開発”にチェックを入れ、OKを押します。
図4.開発タブを追加する
Excelの上部に開発タブが出現したことを確認しましょう。
図5.開発タブの出現
これで、マクロファイルを使うための準備は完了です。続いて、実際にマクロを扱ってみましょう!
3.マクロの記録でVBAのコードに触れてみよう!
それではお待たせしました、実際にマクロの記録を行ってみましょう!まずは開発タブをから、”マクロの記録”を押します。 ”マクロの記録”ウィンドウが出現したら、マクロの保存先が”作業中のブック”となっていることを確認しOKを押します。
図6.マクロの記録を行ってみる
何も変わっていないように感じるかもしれませんが、これでマクロの記録が行われている状態になっているはずです。 それでは、試しに下図のとおり、A1のセルに”あいうえお”と入力して、”Enter”キーを押してみましょう。 カーソルがA2に移動したら、先ほどの”マクロの記録”ボタンが”記録終了”ボタンに切り替わっているので、”記録終了”ボタンを押します。
図7.実際に作業を記録してみる
これで、マクロの記録は完了です。ここで復習ですが、マクロを動かしている実態はVBAという言語でした。マクロの記録を行うと、先ほどの作業がVBAという言語で表現されます。 それでは、先ほどの作業のマクロのコード(VBA)を見てみましょう。 画面左上の”Visual Basic”をクリックします。
図8.Visual Basicの起動
すると、見慣れない画面がでてきたかと思いますが、この画面をVBE(Visual Basic Editor)といい、これがマクロ機能の正体です!画面の説明については、下図を参照してください(詳細の説明は次回以降で。とりあえず名称のみ)。
図9.VBEの画面の説明
それでは、先ほどマクロの記録で記録した作業のコードを見てみましょう。 画面左側のプロジェクトエクスプローラーから、”標準モジュール”を選択し、”Module1″をダブルクリックします。 図10.マクロの記録で保存したコードの確認 画面右側には、英語のような文章が記載されており、これが先ほどのマクロの記録で記録した作業をVBAを用いて言語化したものです。 つまり言い換えれば、マクロというのは、VBAという言語を用いて作業を言語化し、それを組み合わせることで作業を自動化することができるものです。 それではコードを一行ずつ見ていきましょう。 まず、1行目と9行目に「Sub Macro1()」、「End Sub」とあり、これらで囲まれた中身が一つのプログラムとなり、これがプログラムの一つの単位であり、この塊を「モジュール」と呼んだりします。 Subの後の「Macro1」は任意の名前であり、自分でわかりやすいように名前を付けることができます。先ほどのように、マクロの記録でコードを保存した場合は連番で「Macro 番号」と自動的に名前が割り振られます。 また、モジュール内にある、「’」シングルクオーテーションは、コメントを意味します。 「’」以下の文章はコメントとして扱われ、コードには直接影響しません。メモ書きとして使うときに役立ちます。 続いて7~8行目を見てみますが、説明をわかりやすくするため、7行目の「ActiveCell.FormulaR1C1 = “あいうえお”」の「FormulaR1C1」の部分を「Value」と書き換えます。以下のようになると思います。 この7~8行目部分が先ほど記録した作業を言語化したものです。 先ほどの作業をおさらいすると、
- A1のセルに”あいうえお”と入力して、
- Enter”キーを押下
しました。 A1のセルに”あいうえお”と入力した部分が7行目に該当し、”Enter”キーを押し選択セルがA2に変わったところが8行目に該当します。 一行ずつ日本語に訳していくと、7行目の「ActiveCell.Value = “あいうえお”」という部分は、「現在選択しているセルの値を”あいうえお”に設定する」という意味になります。セルの値とは、セルの中身のことであり、セルの値を○○に設定する=セルに○○と入力すると思っていただいて構いません。 8行目は、「Range(“A2”).Select」とありますが、これはそのまま、「A2を選択する」という意味です。
このようにマクロのコードは簡単な英文のようなもので記載されており、意外と簡単に学習することができます。大文字や小文字の表記もVBEが自動で補正してくれます。 では、逆にこの保存したマクロを実行してみましょう。先ほどの保存した作業を実行することになるので、同様にA1セルに”あいうえお”と入力され、A2セルが選択されるはずです。 一旦いつものExcelの画面へ切り替えSheet1のセルA1の値を削除し、そのままA1セルを選択したままでVBEへ画面を切り替えます。
図12.マクロの実行から先ほどの作業を再現してみる
すると、、、、、 早すぎて、ちゃんと起動しているかわからなかったかもしれませんが、Sheet1を確認してみてください。 さっき消したはずの”あいうえお”がA1セルに入力されていて、A2セルが選択状態になっていると思います。
これで第一回のExcel VBA 講座はここまでです。
講座の三行まとめ
- 「VBA」とはプログラミング言語のことで、「マクロ」とは作業自動化機能のこと。
- マクロを使うためには、Excelのセキュリティの設定を変更し、マクロを有効化することが必要。
- マクロの記録でExcelの編集作業を言語化することができて、マクロを実行することで保存した作業を再現することができる。