「エクセルを、自動化せよ」
連載:
エクセルで始める!VBAプログラミング入門
(Excelの作業を自動化できる、プログラミング超入門講座)(第3回)基本のVBAを記述してみよう!
【連載】
▼この連載は、ベネッセUdemyにて発売している動画コースの内容から一部を記事にしているものです。
動画でもっと分かりやすく勉強したい方は、こちらもご覧下さい。
(この連載限定で●%割引となります)
【好評につき、続編が出ました】
[脱・入門編]請求書を1クリックで作るマクロを作ろう
クマの教えを受け、マクロの中身は「VBA」で記述されていることが判明。いよいよ、基本のプログラミングが始まる…!
[前回までのあらすじ]
Excel仕事に苦労していたカフェの店長マークは、突然あらわれたクマに、エクセルを自動化する「マクロ」を教わることになった。マクロの中身は「VBA」という言語で記述されていることがわかったマーク。いよいよ、VBAの基本的なプログラミングに入門していく…
『box』=箱。
『Msg』=Message
という単語に似ているな。」
Message Box(メッセージボックス) か!」
『メッセージ箱からこんにちは』?」
『“こんにちは”というメッセージ箱を出力』
だ。」
いや、本当は、わかってたけど…ね…」
まぁ、今の時点では100%理解 できなくてもいい。大事なことは、 まずは触れてみて慣れることだ!」
(0)今回の実習内容
今回の実習内容はこちらです。
- (1)標準モジュールを作成しよう
- (2)最初のVBA「こんにちは」を作ろう
- (3)マクロを実行してみよう
- (4)「こんにちは」以外に変えてみよう
- (5)インデントで整えよう
実習ファイルをダウンロードしてみよう!
パソコンで以下のファイルをダウンロードして、実習を行うことができます。
(1)標準モジュールを開こう
①VBEを表示させましょう。
([Alt]キー+[F11]ショートカットキーでも表示させることができます。)
②「標準モジュール」をダブルクリックして開きましょう。
(2)最初のVBA「こんにちは」を作ろう
まずは、「こんにちは」というメッセージボックスを表示させるマクロを作ってみましょう。
①標準モジュールの先頭をクリックします。
②何回かEnterキーを押して改行を入れておきましょう。
③Sub Aisatsu()と入力して[Enter]キーを押します。
④すると、「End Sub」が自動挿入されます。
マークなんで自動的に「End Sub」と挿入されるのよ?「Sub」 ~ 「End Sub」が、マクロの一連の処理をあらわしているからです。
今回は「Aisatsu(あいさつ)」という処理を作っていますが、こうした一連の処理のかたまりを「プロシージャ」といいます。通常、「Sub プロシージャ名」から開始した一連の処理は、「End Sub」で終了を意味します。
ですが、入力し忘れるとマクロが不具合を起こすことになりますので、忘れないように、「End Sub」が自動挿入されるようになっているのです。
⑤見やすくなるように、3行ほど間隔を空けておきます。
⑥真ん中の行を選択してから、[Tab]キーでインデント(字下げ)をします。
⑦「MsgBox “こんにちは”」と入力しましょう。
※半角モードで入力するよう気を付けましょう。全角モードで入力してしまうと不具合の元になります。
これで、マクロができました。
(3)「こんにちはマクロ」を実行してみよう
それでは、(2)で作成したマクロを実行してみましょう。
① このようなボタンをクリックすると、マクロが実行されます。
(※このとき、Sub ~ End Subの間の行をクリックして選択した状態であることを確認しましょう。
すると、右上に「Aisatsu」と表示されていることが確認できます。)
※または、メニューバーの「実行」>「Sub/ユーザー フォームの実行」」か、[F5]キーでも実行することができます。
②Excelの画面に切り替わり、メッセージボックスが表示されます。
なんかメッセージが出た!
(感動)
③「OK」をクリックすると、メッセージが閉じられます。
(4)「こんにちは」を「こんばんは」に書き換えてみよう
それでは、「こんにちは」を書き換えて「こんばんは」としてみましょう。
①「こんにちは」を削除して「こんばんは」に書き換えましょう。
(※この時、「”」を削除しないように気を付けましょう。)
② ボタンで実行すると、メッセージボックスの文言が「こんばんは」に変わったことが確認できます。
(5)インデントで整えよう
先ほど、[TAB]キーを使ってインデント(字下げ)をしました。
これは、プログラミング言語を記述するときの「お約束」のような習慣です。
「Sub」 ~ 「End Sub」までの間が一連の処理内容です。
したがって、「ここは処理内容を表していますよ」という点がわかりやすいように、インデント(字下げ)をしておくのが通例です。
マークえ?
でも別に、インデントしていなくてもマクロは正常に動くみたいなんだけど??そうですね。実はインデントをしなくても、マクロは正常に動きます。
でも、インデントして見やすくするメリットは色々あります。
1.後から自分でソースコード(記述内容)を見返したとき、処理の流れを見直しやすい
プログラミングしていると、自分で記述したソースコードを見返すことがよくあります。エラーが起こった原因を探す場合もありますし、次の処理を記述するために必要になってくることが多いからです。
そんな時、ソースコードが整理されていなくてグチャグチャになっている場合、見返すのが困難になります。
しかし、綺麗に整理されたソースコードですと、すらすらと見返すことができて効率的です。2.他人が見ても意味が伝わるように
自分だけが理解できるソースコードを記述しても、他人が見て理解できなければ困る場合があります。
特に職業プログラマーさんの場合、自分だけではなく他の人も開発に携わっている場合が多くありますし、自分が担当したマクロを後任に引き継ぐということもあり得ます。
そんな時、やはりソースコードが整理されていなくてグチャグチャになっている場合、読み手が困ってしまうことになります。
上記の理由から、プログラミングでは、適宜インデントを挿入して、整理されたコードを記述するよう心がけるのが通例となっています。
今回はここまで!
いかがだったでしょうか?
今回は以上です。
次回からは、
- セルに数値を挿入してみよう
- セルに文字列を挿入してみよう
- 一発で「割引価格」にしよう
- 一発で「様」を付けよう
などを解説して参ります。
この連載のような内容を動画のコースでわかりやすく解説しています。
(ベネッセUdemyにて動画コースが●%オフ)
【好評につき、続編が出ました】
[脱・入門編]請求書を1クリックで作るマクロを作ろう
[新着]こちらは5月いっぱいまで無料!
お子さんのプログラミング学習に興味のある方は
ゲーム好きな子供を熱くさせる!
親子で学べる、プログラミング教育 超入門コース
<<5月いっぱい無料です>>
========
連載:
エクセルで始める!VBAプログラミング入門
(Excelの作業を自動化できる、プログラミング超入門講座)
【連載】
- 第0回 エクセルを自動化する、マクロVBAプログラミングとは?
- 第1回 超親切な機能「マクロの記録」でマクロを始めよう!
- 第2回 マクロの中身を解明!初めてのVBAに挑戦
- 第3回 基本のVBAを記述してみよう!(この記事)
- 第4回 続・基本のVBAを記述してみよう!
- 第5回 [変数]入門!プログラミングの必修項目
- 第6回 もっと変数を使おう!String型とVariant型
- 第7回 もっと便利な「VBA関数」を使おう!