こんにちは!かいけつマクロです。
前回は、びっくりするくらい、あっさりと、Excelマクロができてしまい、腰を抜かされた方もいらっしゃるのではないでしょうか。ええ、いないと思います。(‘_’)
さて今回は、前回作成したExcelマクロの中身をのぞいて、裏側では、一体全体、何をやってるの?というところを見ていきたいと思います。それでは、張り切ってまいりましょう!
Excelマクロの中身はどんなもの?
それでは、まず、前回の第1講で作成したExcelマクロを用意してください。
先に言っといてくれないと、保存せずに消しちゃったじゃーん
という方もご安心を。
第1講の「Excelマクロを実際に動かしてみよう」の部分を見れば、すぐに準備できるので、まずはそちらをご覧ください。
いま、皆さんは、こんな感じのExcelが手元にあると思います。
この状態で、「Alt」ボタンを押しながら、「F11」ボタンを押してみてください。
・・・すると、どうですか?なにやら怪しげな、こんな画面が立ち上がりましたか?
この画面が、Excelマクロの「ホーム」とも言える画面であり、これから皆さんは、何度となくこの画面を見ていくことになると思います。雨の日も風の日も、イヤというほど見ることになると思いますが、どうか嫌いにならないであげてください(;・∀・)
さて、左側の「プロジェクト – VBAProject」を見ると、以下のような表示になっていると思います。
実は、、、「Ctrl」+「m」を押したときに、この「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
こちらは、「これでこのマクロは終了!」という意味、ただそれだけです。
えらい、あっさりしてるな!
マクロの中身をのぞいてみて
お疲れさまでした!今回は、前回作成した、マクロの中身を、一つずつ、丁寧に見てきました。
これで、皆さんが作成したマクロが、どのように動いているかスッキリ理解できたと思います!
うーん、なんかわかったようなわからんような。。
という方も大丈夫!次回以降も読み続けて、このブログに戻ってくれば、きっと、
なーんだ。こんな簡単なことだったのね
となってるはず!なので、次回以降も、ぜひ、読んで・実践していきましょう!
それでは!
コメント