Excelマクロの基本構造

エクセルマクロを、ごくシンプルに説明すると、以下の構造になります。

  1. 処理の部分
  2. 条件分岐
  3. ループ

「処理」とは、命令のことです。Excelに「あれしなさい」「これしなさい」を伝えます。

余談ですが、Excelマクロを作っていると自分の意図しない動作をしてくれちゃうことがあります。「あー、そうじゃないんだよー・・。なんでそうするかなぁ」みたいなことを独り言でいいますw
しかし自分が書いたプログラムをよく見返すと、Excelが間違えていることは、まずありません(ごく稀にありますが。それをいわゆる「バグ」と言います)。自分の意図しない結果を返した場合は、疑うのはマシンではなく、人間です。

「条件分岐」は、「もし○○だったら」で分岐させます。分岐させた上で、「処理」を命令します。

「ループ」は、繰り返しです。
この繰り返しこそ、エクセルマクロをはじめとするプログラミングが最も得意とする部分です。Excelマクロでも、人間では絶対に不可能な速さでループさせることができます。

以下に例を3つ挙げます。

例①は、処理だけしかない例です。
こんなケースはめったに無いですが、まったく無いわけではないです。

例②は、いわゆる「if文」を使った分岐の例です。
条件分岐には「if」のほかに「Select Case」がありますが、この2つだけ覚えて使い分けができれば良いだけです。

例③は、典型的なマクロの構造です。ほとんどのマクロがこの構造になると思います。
ループには「For~Next」文や「Do」系などいくつかあります。しかし私は「For~Next」が好きなので、ほぼそれしか使いませんw

・・と言うわけで、ここまでをまとめます。

  1. Excelマクロは、「処理」「条件分岐」「ループ」から構成されている
  2. 条件分岐は「if」文と「Select Case」を、ループは「For~Next」を覚えれば良い。それで(良し悪しは別として)少なくても私のレベルには到達できます。つまり、一般的なビジネス利用において困ることは無いレベル、お仕事を極めて効率化できるレベルです。

では、肝心な「処理」は?
これは非常にたくさんあるので、書ききれません。

しかし、これは「良い方法」があるので大丈夫です。
むしろ、その「良い方法」を活かすためには、条件分岐とループが使えることがキモなのです。
その方法とは「マクロの記録」なのですが、また今度。

なお最後に非常に重要なことですが、Excelマクロは必ず「上から下」に流れます。
必ず「Sub」から始まり、上から下に進んでいき、「End Sub」で終わります。
ただしループの場合だけは、その区間だけループします。これをお忘れなく。

 

Excelマクロの目次へ戻る

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です