1424930_6867_3

「エクセルを、自動化せよ」

連載:

エクセルで始める!VBAプログラミング入門
(Excelの作業を自動化できる、プログラミング超入門講座)

(第3回)基本のVBAを記述してみよう!

【連載】

▼この連載は、ベネッセUdemyにて発売している動画コースの内容から一部を記事にしているものです。
動画でもっと分かりやすく勉強したい方は、こちらもご覧下さい。
(この連載限定で●%割引となります)

screenshot_79

【好評につき、続編が出ました】
[脱・入門編]請求書を1クリックで作るマクロを作ろう

screenshot_80

 

クマの教えを受け、マクロの中身は「VBA」で記述されていることが判明。いよいよ、基本のプログラミングが始まる…!

[前回までのあらすじ]

Excel仕事に苦労していたカフェの店長マークは、突然あらわれたクマに、エクセルを自動化する「マクロ」を教わることになった。マクロの中身は「VBA」という言語で記述されていることがわかったマーク。いよいよ、VBAの基本的なプログラミングに入門していく…

background

熊リオ
「ここからは、いよいよVBAの基礎を 伝えていく。 VBAとは何なのか覚えているな?」

 

マーク
「え〜と、VBAはマクロに作業させたい命令を 書くための言語。かな?」

 

pic1

熊リオ
「そうだ。かなり成長したじゃないか。」

 

熊リオ
「しかし『言語』というと、難しい機械語 を覚えるような気がするだろう?」

 

pic2

 

マーク
「うん。イメージ的には、変な数字の羅列?」

 

熊リオ
「だが、心配するな。VBA自体は人間が考えた ものだ。人間の言葉、特に英語に似ている。
マーク
「えっ、そうなの?」

 

pic3

 

熊リオ
「例えば、これから最初に使うVBAの記述は こんなもんだ。何となく意味がわかるかな?」

 

pic4

 

マーク
「うん…『こんにちは』は、セリフかな? Msgboxは、よくわからないなぁ。box=箱?

 

熊リオ
「そうだ。いい線いってるぞ。

『box』=箱
『Msg』=Message

という単語に似ているな。」

 

pic5

 

マーク
「そうか!つなげて読むと

Message Box(メッセージボックス) か!」

 

pic6

 

マーク
「わかったぞ!意味は…

『メッセージ箱からこんにちは』?」

熊リオ
「…誰が箱から出てくるんだ
ノア
(店長、いつも以上の珍回答だわ…)

 

熊リオ
「まぁ、近いことを言っているが…答えは、

“こんにちは”というメッセージ箱を出力

だ。」

 

pic7

 

マーク
「そっちかぁ!

いや、本当は、わかってたけど…ね…」

 

熊リオ
「さて。何となく分かったろう? VBAといえど人間が作った言語。怖がることはない。 カタコトの英語みたいなものだな。」

マーク
「なるほど!『あい はぶ あ ペ〜ン』みたいな?」

熊リオ
「(・・・君の英語がそこまで酷いとはな。)

まぁ、今の時点では100%理解 できなくてもいい。大事なことは、 まずは触れてみて慣れることだ!」

 

マーク
「よ〜し、勇気を出してみようかな!」

 

(0)今回の実習内容

今回の実習内容はこちらです。

  • (1)標準モジュールを作成しよう
  • (2)最初のVBA「こんにちは」を作ろう
  • (3)マクロを実行してみよう
  • (4)「こんにちは」以外に変えてみよう
  • (5)インデントで整えよう

実習ファイルをダウンロードしてみよう!

パソコンで以下のファイルをダウンロードして、実習を行うことができます。

screenshot_78
section1_goal2.xlsx

(1)標準モジュールを開こう

①VBEを表示させましょう。
([Alt]キー+[F11]ショートカットキーでも表示させることができます。)

screenshot_152

②「標準モジュール」をダブルクリックして開きましょう。

screenshot_153

(2)最初のVBA「こんにちは」を作ろう

まずは、「こんにちは」というメッセージボックスを表示させるマクロを作ってみましょう。

slide2

①標準モジュールの先頭をクリックします。

screenshot_155

②何回かEnterキーを押して改行を入れておきましょう。

screenshot_154

③Sub Aisatsu()と入力して[Enter]キーを押します。

screenshot_156

④すると、「End Sub」が自動挿入されます。

screenshot_157

 

マーク
なんで自動的に「End Sub」と挿入されるのよ?

「Sub」 ~ 「End Sub」が、マクロの一連の処理をあらわしているからです。

screenshot_158

今回は「Aisatsu(あいさつ)」という処理を作っていますが、こうした一連の処理のかたまりを「プロシージャ」といいます。通常、「Sub プロシージャ名」から開始した一連の処理は、「End Sub」で終了を意味します。
ですが、入力し忘れるとマクロが不具合を起こすことになりますので、忘れないように、「End Sub」が自動挿入されるようになっているのです。

 

⑤見やすくなるように、3行ほど間隔を空けておきます。

screenshot_159

⑥真ん中の行を選択してから、[Tab]キーでインデント(字下げ)をします。

screenshot_160

⑦「MsgBox “こんにちは”」と入力しましょう。

screenshot_161

※半角モードで入力するよう気を付けましょう。全角モードで入力してしまうと不具合の元になります。

 

これで、マクロができました。

 

(3)「こんにちはマクロ」を実行してみよう

それでは、(2)で作成したマクロを実行してみましょう。

screenshot_165 このようなボタンをクリックすると、マクロが実行されます。

(※このとき、Sub ~ End Subの間の行をクリックして選択した状態であることを確認しましょう。
すると、右上に「Aisatsu」と表示されていることが確認できます。)

screenshot_164

※または、メニューバーの「実行」>「Sub/ユーザー フォームの実行」」か、[F5]キーでも実行することができます。

screenshot_163

②Excelの画面に切り替わり、メッセージボックスが表示されます。

screenshot_166

 

マーク
おお!?

なんかメッセージが出た!

(感動)

 

 

③「OK」をクリックすると、メッセージが閉じられます。

 

(4)「こんにちは」を「こんばんは」に書き換えてみよう

それでは、「こんにちは」を書き換えて「こんばんは」としてみましょう。

slide3

①「こんにちは」を削除して「こんばんは」に書き換えましょう。
(※この時、「”」を削除しないように気を付けましょう。)

screenshot_167

screenshot_165 ボタンで実行すると、メッセージボックスの文言が「こんばんは」に変わったことが確認できます。

screenshot_168

 

(5)インデントで整えよう

先ほど、[TAB]キーを使ってインデント(字下げ)をしました。
これは、プログラミング言語を記述するときの「お約束」のような習慣です。

slide4

「Sub」 ~ 「End Sub」までの間が一連の処理内容です。
したがって、「ここは処理内容を表していますよ」という点がわかりやすいように、インデント(字下げ)をしておくのが通例です。

screenshot_169

 

マーク
え?
でも別に、インデントしていなくてもマクロは正常に動くみたいなんだけど??

そうですね。実はインデントをしなくても、マクロは正常に動きます。

でも、インデントして見やすくするメリットは色々あります。

1.後から自分でソースコード(記述内容)を見返したとき、処理の流れを見直しやすい

プログラミングしていると、自分で記述したソースコードを見返すことがよくあります。エラーが起こった原因を探す場合もありますし、次の処理を記述するために必要になってくることが多いからです。

そんな時、ソースコードが整理されていなくてグチャグチャになっている場合、見返すのが困難になります。
しかし、綺麗に整理されたソースコードですと、すらすらと見返すことができて効率的です。

2.他人が見ても意味が伝わるように

自分だけが理解できるソースコードを記述しても、他人が見て理解できなければ困る場合があります。

特に職業プログラマーさんの場合、自分だけではなく他の人も開発に携わっている場合が多くありますし、自分が担当したマクロを後任に引き継ぐということもあり得ます。

そんな時、やはりソースコードが整理されていなくてグチャグチャになっている場合、読み手が困ってしまうことになります。

 

上記の理由から、プログラミングでは、適宜インデントを挿入して、整理されたコードを記述するよう心がけるのが通例となっています。

 

 

 

今回はここまで!

いかがだったでしょうか?

 

今回は以上です。

次回からは、

  • セルに数値を挿入してみよう
  • セルに文字列を挿入してみよう
  • 一発で「割引価格」にしよう
  • 一発で「様」を付けよう

などを解説して参ります。

 

 

この連載のような内容を動画のコースでわかりやすく解説しています。

(ベネッセUdemyにて動画コースが●%オフ)

screenshot_79

 

【好評につき、続編が出ました】
[脱・入門編]請求書を1クリックで作るマクロを作ろう

screenshot_80

 

[新着]こちらは5月いっぱいまで無料!
お子さんのプログラミング学習に興味のある方は

ゲーム好きな子供を熱くさせる!
親子で学べる、プログラミング教育 超入門コース

<<5月いっぱい無料です>>

screenshot_81

 

========

連載:

エクセルで始める!VBAプログラミング入門
(Excelの作業を自動化できる、プログラミング超入門講座)

【連載】