管理栄養士のためのVBA入門!第2回:VBAを実行してみよう

Excel

みなさん,こんにちは.
シンノユウキ(@y_stadio)です.

今回は「管理栄養士のためのVBA入門」の第2回、以下の記事の続きです。

管理栄養士のためのVBA入門|第1回:VBAとは?
今回から新連載のスタートです。題して、 「管理栄養士のためのVBA入門」です。 「VBA」という言葉は、聞いた事がある人もいらっしゃるかもしれません。 が、多くの方があまり馴染みのない言葉ではないでしょうか。 こ...

今回から実際にプログラミングに入っていきます。まずはプログラムを書く場所や、書いたプログラムを実行するための方法などを紹介していきます。

では、行きましょう。

 

VBEを開こう!

まずはExcelを起動してください。VBAはExcelの機能を拡張するプログラミング言語なので、Excelファイルにコードを記述していくという流れになります。

ただし、セルに直接コードを書いていくというわけではありません。特別な、コードを書くためだけのツールを起動する必要があります。そのツールのことを「VBE」と呼びます。

ではVBEを起動してみましょう。

メニューの、「開発」→「Visual Basic」の順にクリックしてください。そうするとVBEが起動されます。VBEというのは、Visual Basic Editer の略で、その名の通り、VBを編集する場所、つまりコードを書いていく場所です。

以下のような画面が立ち上がりましたか?Alt+F11でもVBEは立ち上がりますので、余裕のある方は覚えておくと良いでしょう。

 

私の場合は少し設定を変更しているので、この通りでない場合もあるかもしれませんが、これに似た画面が立ち上がればOKです。

人によっては、メニューに「開発」タブが無い場合もあるかもしれません。その場合は先に表示させましょう。Excelメニューの上で右クリックをし、「リボンのユーザー設定」を選択してください。

 

すると、以下のような画面が立ち上がります。

 

これの右側のウインドウ、「開発」のチェックボックスにチェックを入れ、OKをクリックしてください。そうすると、メニュータブに「開発」が表示されます。後は先ほどと同じ手順で、VBEを表示させましょう。

 

VBEの設定を変更しよう!

さて、はれてVBEを表示できましたが、初期設定の状態のVBEは非常に使いにくいものです。そのため、使いやすいようにVBEの設定を変更します。

VBEの画面で、メニューの「ツール」「オプション」をクリックしてください。

 

以下のような画面が表示されましたか?では設定を変更していきましょう。

 

まずは「自動構文チェック」のチェックを外してください。

 

次に、メニュータブの「エディターの設定」をクリックし、コードの表示色やフォントを変更していきます。

 

主な変更点は以下の通りです。

コードの表示色 前景 背景
標準コード 黄色
コメント 濃いグレー
キーワード 水色
識別子

 

フォントも、「Meiryo UI」に変更してください。ディスプレイで見るにはなかなか良いフォントです。印刷物には向いてないですけどね。視認性はすごく良くなります。

ちなみに、これは以下のページの丸パクリです。便利なので使ってしまいました。すごく参考になりますので、私のページで設定方法がわからない等ありましたらご参照ください。

【エクセルVBA】VBEの背景色や文字色を変更して画面を見やすくしよう
エクセルVBAの作業効率&快適さを劇的に上げるVBEの使い方についてお伝えしていますが、今回はVBEの背景色や文字色を変更して画面を見やすくするシンタックスハイライトの設定方法とおすすめ設定についてです。

 

標準モジュールを追加しよう!

いよいよコードを書いていくわけですが、最初の段階ではコードを書く場所が存在しません。一般的に、コードは「標準モジュール」という場所に書いていくわけですが、この標準モジュールという場所は最初の段階では表示されていません。そのため、まずは標準モジュールを追加する必要があります。

VBEのメニューの「挿入」「標準モジュール」の順でクリックしてください。すると、左側のウインドウに「標準モジュール」というフォルダが作成され、その内側に「Module1」が追加されたはずです。

ちなみに、この左側のウインドウのことを「プロジェクトエクスプローラ」と呼びますので、余裕のある方は覚えておきましょう。

では、このModule1をダブルクリックしてみてください。以下のようなコードを書く場所が表示されるはずです。ここにコードを書いていきましょう。

 

本来は、このModule1以外にもコードを書く場所は存在するのですが、初心者の方は、まずはこの場所に書くものであると認識しておくとよろしいかと思います。

 

プロシージャを追加しよう!

ではコードを書いていきましょう。

コードは、まずはコードの枠組みから書いていきます。コードの枠組みというのは、一度に実行されるコードの塊みたいなもののことで、「プロシージャ」と呼びます。まずはこのプロシージャを追加する必要があります。

プロシージャは、以下のような構造を持っています。

 

 

Subはsubroutineの略で、プログラムを構成する一要素であることを示しています。

そして、Subと、終わりを意味するEnd Sub の間にプログラムを記述していきます。

 

メッセージを表示してみよう!

では、実行するプログラムの内容を書いていきます。以下のようなコードが完成形です。これをとりあえず打ち込んでみましょう。

 

 

最初は、こんなコード

でも、全く意味がわかりませんよね。そんな場合でもとりあえず手を動かして打ち込んでみることが重要です。手を動かして書いているうちに、だんだんと意味がわかってきます。反対に、手を動かさず、意味だけを理解しようと必死にコードを読み込んでいっても実際に使えるようにはなりません。

では、コードの解説をしていきます。

最初の行、

の箇所は、「メッセージの表示」という名前のSubプロシージャのことです。これは何も難しくはないですよね。

 

2行目の

の箇所について順に説明していきます。

ここでは、MsgBoxという関数による処理を実行しています。

MsgBox関数では、引数(カッコの中)に文字列を入力することで、その文字列をメッセージボックスとして画面に表示させることができます。

プログラミング言語では、特定の文字列(今回の場合では”こんにちは、世界!”)はダブルクオーテーションで囲みます。そうすることで、プログラミング上では文字列としての意味を持つコードとして解釈されます。以降でも、特定の文字列を入力する際にはダブルクオーテーションで囲むようにしてください。

 

では、実際に実行してみましょう。

実行は、F5でできます。カーソルをコード上においてから行ってください。シートを確認してみると以下のようになっています。

 

「こんにちは、世界!」というメッセージボックスが表示されましたね。以外と簡単にできることがわかっていただけたかと思います。

 

 

保存の際に少し注意

VBAのコードを入力したブックを保存する際には注意が必要です。Excelの標準のファイル形式:xlsxやxlsではマクロを持った状態のブックとしては保存できないのです。そのため、保存しようとすると以下のようなダイアログが表示されてしまいます。

 

ここでは「いいえ」をクリックして、マクロが有効なファイル形式として保存し直してください。以下のように変更すればOKでしょう。

 

演習問題

MsgBox関数を使って、「Hello World!」を出力するプログラムを作ってみましょう。作成する際は、新しくSubプロシージャを作成し、プロシージャ名は「演習2」としてください。

 

まとめ

今回は「VBAで食品入力を簡単にしよう」の第2回で、VBAの始め方や、また少しですが実際にコードを書いてみました。初心者の方にはハードルがかなり高かったかと思いますが、何度か繰り返し読んでみて、理解できるように頑張りましょう。

 

連載目次