【第2講】Excelマクロの中身をのぞいてみよう!

代入イメージ
スポンサーリンク

こんにちは!かいけつマクロです。

前回は、びっくりするくらい、あっさりと、Excelマクロができてしまい、腰を抜かされた方もいらっしゃるのではないでしょうか。ええ、いないと思います。(‘_’)

さて今回は、前回作成したExcelマクロの中身をのぞいて、裏側では、一体全体、何をやってるの?というところを見ていきたいと思います。それでは、張り切ってまいりましょう!

スポンサーリンク

Excelマクロの中身はどんなもの?

それでは、まず、前回の第1講で作成したExcelマクロを用意してください。

先に言っといてくれないと、保存せずに消しちゃったじゃーん

という方もご安心を。

第1講の「Excelマクロを実際に動かしてみよう」の部分を見れば、すぐに準備できるので、まずはそちらをご覧ください。

いま、皆さんは、こんな感じのExcelが手元にあると思います。

マクロ実行結果2

この状態で、「Alt」ボタンを押しながら、「F11」ボタンを押してみてください。

・・・すると、どうですか?なにやら怪しげな、こんな画面が立ち上がりましたか?

マクロ画面ホーム

この画面が、Excelマクロの「ホーム」とも言える画面であり、これから皆さんは、何度となくこの画面を見ていくことになると思います。雨の日も風の日も、イヤというほど見ることになると思いますが、どうか嫌いにならないであげてください(;・∀・)

さて、左側の「プロジェクト – VBAProject」を見ると、以下のような表示になっていると思います。

Module1_選択

実は、、、「Ctrl」+「m」を押したときに、この「Module1」というのが動いて、全く同じ文字をセルに入力する、という処理を行っていました。

ということで、この「Module1」の中身を見てみましょう。「Module1」をダブルクリックしてください。

Module1_画面

・・・

ギャー、呪文みたいなわけわからんの、いっぱい出てきた( ;∀;)

もう無理!寝る!!

と思われた方、あと少しだけ待ってください!読み進めれば、すぐにわかるようになるので、次に進んでみましょう。

マクロで書かれた内容を紐解いてみよう

先ほどの呪文みたいな文字の羅列、ただ眺めているだけでは、ずっと意味が分からないままなので、1行ずつ、嚙み砕いて見てみましょう。

1行目 Sub Macro1()

いきなり難しそうな文字が並んでいますが、これは、「これからマクロを書きますよー」という宣言です。次回以降の講義で、具体的な書き方を説明していくので、とりあえずは、

ふーん。そんなのがあるのね

くらいでOKです。

2~6行目 「’」から始まる文字列

2~6行目は、「’」から始まり、そして、他の部分と文字の色が違いますね。(ちなみに、この「’」を「シングルクォーテーション」と言います。)

これは、これから皆さんがExcelマクロをマスターしていくのに、非常に重要となる、「コメント」というものです。この「コメント」は、実は、マクロの処理としては何も影響しない、つまり、書いても書かなくても一緒です。

それなら、書くだけムダじゃないか!

と思われる方もいらっしゃるかもしれませんが、「コメント」は、「その処理が何をしているか、人間が簡単にわかるようにするためのもの」です。

これから皆さんが作っていくExcelマクロは、最低でも数十行、多い時は、何千、何万行という行数を書くこともあります。

それを「マクロが読める言葉だけ」で、全て記述していくと、それこそただの呪文になってしまい、「もっと使いやすくこう変えたい!」というような要望が出てきたとき、どこを直せばいいの?というのを見つけ出すだけでも、一苦労、、、というか、実際問題、見つけ出せないかもしれません。。。

このような、後々の修正が入る可能性を考えると、絶対に「コメント」入れる、ということを、習慣にしていくことが大切になってきます。(コメントの入れ方については、別のブログで極意を説明する内容を書こうと思っています(‘ω’)ノ)

7行目 ActiveCell.FormulaR1C1 = “こんにちは!”

今回作成したマクロにおいて、この1行が、最も重要な部分です。

まず、左側ですが、各々、以下の意味を表しています。

  • ActiveCell:Excel上で、選択されているセル
  • FormulaR1C1:そのセルの内容  ※厳密には間違った表現ですが、そこはご愛敬

そして、真ん中の「.(ドット)」は、日本語の「の」や「を」と同じ意味なので、「Excel上で、選択されているセルの、その内容」、もっと簡単に言えば、「選択されたセルの中身」という意味になります。

次に、右側は、「こんにちは!」という言葉が、「”」で囲まれています。この「”」は、「ダブルクォーテーション」といい、「その中身は、文字列ですよ!」ということを、マクロに教えてあげる役割をします。

そして最後に、「=」です。これは、皆さんおなじみ、「同じ」という意味の記号ですよね!

・・・ですが、マクロの世界においては、ちょっと使われ方が違うんです!

ナンダッテー!!!

この「=」は、「右側を、左側代入だいにゅうする」という意味になります。例えば、誰かにお願い(命令)して、ダンボール箱に果物を詰め込むことを考えます。

いきなりだな!

この場合、普通に、

  • ダンボール箱に、リンゴを詰めてください
  • ダンボール箱に、みかんを詰めてください

とお願いすればよいです。ただ、マクロに作業させる場合はどうでしょう。その時に、この「=」を使って命令することになります。

マクロがダンボール箱に、果物を詰め込むイメージ

つまり、「=」というのは、「箱に、何か物を入れなさい」という、命令のことだったんですね!

何も知らなければ、

ダンボール箱=リンゴ ってどういうこと?!

全然違うじゃん。

となってしまいます。皆さんもマクロマスターの第1歩を踏み出せたといっても過言ではありません!

さて、今回の例をおさらいすると、

  • 左側:選択されたセルの中身
  • 右側:「こんにちは!」という文字列

で、「=」を使って、右側左側に代入しているのでした。

・・・その結果、「こんにちは!」という文字列が、選択したセルに、簡単に入力されていたということですね。

8行目 Range(“A2”).Select

いよいよ、あと2行です。これも一つずつ見ていきましょう。

まずは「Range」。「範囲」という意味です。(Google先生、ありがとうございます。)

つまり、「”A2″の、範囲(Range)」という意味です。

・・・この「A2」って、どこかで見覚えありませんか?

ない!

・・・失礼しました。。

この「A2」というのは、Excel内のセルの名前を表しており、これを「番地」と言ったりします。

セルの番地

つまり、「Range」と合わせると、「A2セル」という意味になります。

そして、次の「Select」は、「選択する」という意味ですよね。

また、「.(ドット)」は、「の」や「を」を表すんだったので、まとめると、「A2セルを選択しなさい」という命令だったんですね。

9行目 End Sub

こちらは、「これでこのマクロは終了!」という意味、ただそれだけです。

えらい、あっさりしてるな!

マクロの中身をのぞいてみて

お疲れさまでした!今回は、前回作成した、マクロの中身を、一つずつ、丁寧に見てきました。

本日の学びポイント
  • 「’」は、「コメント」を入力するのに使う ※超重要!
  • 「=」は、「右側を、左側に代入する」という意味

これで、皆さんが作成したマクロが、どのように動いているかスッキリ理解できたと思います!

うーん、なんかわかったようなわからんような。。

という方も大丈夫!次回以降も読み続けて、このブログに戻ってくれば、きっと、

なーんだ。こんな簡単なことだったのね

となってるはず!なので、次回以降も、ぜひ、読んで・実践していきましょう!

それでは!

コメント

タイトルとURLをコピーしました