《連載第2弾 少しだけ、マクロを"カジって"みよう》
VBAの中身に少しだけ触れてみよう
「さて、前回は、【図1】の「Module1」を表示させるところまででしたよね。今回は、その内容について少し触れてみます。

まず、忘れないで下さい。
何やらゴチャゴチャと英語で書かれていますが、所詮は皆さんが 『連載第2回(「マクロ記録」) で行った手順が言葉で書かれているだけのものだ』ということを。そして、そのことを思い出しながら、以下の説明を読んでみてください。[マクロの実行]という指示がされると、コンピュータはここに書かれている内容を、一行ずつ実行をしていくのです。
それでは、ここに何が書かれているのか、順に見てみましょう。
≪1行目≫Sub
手順には、名前を付けておきたいですよね。その名前をコンピュータに教えてあげるのがこの行です。マクロ実行時に、マクロの名前「Macro1」を指定しましたよね。
≪最終行≫End Sub
そして最終行にかかれた、End
Sub までがこの手続きの終わりを示す言葉です。
したがって、コンピュータは「Macro1」を実行しなさい!と、指示を受けると、それを探しにいって、見つけて、そこに書かれている内容に基づいて実行し、End Subを見つけたら、そこで処理を終了するのです。
ちなみに、この Sub~End Subの“一かたまり”を、「プロシジャ(Procedure)」と呼びます。文字通り、日本語にすれば、手順・手続きのことです。
≪2~6行目≫ ’(アポストロフィ)のついた行

今回は、マクロを記録した日付と、ユーザー名が、書かれていると思います。
この「’」は、コンピュータに、「この行に書いてあることは、無視していいよ。」と教えています。要するに、「’」をつければ、マクロを作った人が、後から見てわかりやすいように、自由にメモやコメントが書けるということです。
≪7行目≫これは、今回のマクロで、コンピュータに始めて行う、「命令」です。
Range(範囲)
と Select(選ぶ)、という英語がわかれば、おのずと命令の意味はおわかりいただけると思います。
実際に、マクロ記録でも、最初に、並べ替えたい範囲を選びましたよね。そのことをコンピュータに自動的に行わせるための命令です。
Sum関数の範囲指定と同じように B2:J15 のような表現をします。 しかし、チョットだけ違うのが「” ”」で囲わなければいけないことでしょうか。
さて、今回のプロシジャの中で、ハイライトとなる命令です。 そう、マクロ記録で、選んだ範囲を並べ替えましたね。

この命令は、4行に渡っていますが、実は1つの命令なのです。
内容は、Selection・・・選ばれたもの(範囲)を
Sort・・・・・・・並べ替えなさい、その並べ替えにあたって、
Key1は、・・・ Order1= xlAscending, 、・・・並べ替えのキー1は、xx、昇順(xlAscending)で
のようにコンピュータに指示しているのです。
チョット覚えるのは大変ですが、何をしようとしているのかは、理解できますよね。
ちなみに、筆者も、こういう長い命令を書かなければいけないとき、そこだけマクロ記録して、 Visual Basic Editorの中で、カット&ペーストしてしまってます。
今回は、字が多すぎてわかりにくかったかもしれませんが、なんとなく、「マクロってそんなものか」を、感じていただけたら幸いです。
経営コンサルタント 谷田貝 敏紀
[2003年8月15日 掲載]
ジャーナル最新のテーマ
お客様の声をお聞かせください

富士通ジャーナルに掲載している記事やコンテンツについてのご意見・ご感想を、ぜひお寄せください。
お寄せいただいたご意見・ご感想については、富士通からの回答をお約束するものではありません。ご了承ください。
なお、富士通からのご回答を必要とするお問い合わせについては、
富士通ジャーナルに関するお問い合わせをご利用ください。





