Step2 基礎

【STEP2 基礎2】プログラムの基本構造について

プログラムの基本構造とは

VBAでプログラミングするにあたり、
「プログラムの構造」
というものを理解することが大切です。

基本の構造は次の3つ

言葉は難しいですが、動き自体はシンプルです。

ステップ1基礎で使ったイミディエイトウィンドウでは、
1行という行単位でしか、プログラムは動作できませんでした。

これから学ぶVBAプログラミングでは複数行のプログラムを動作させることになります。

なぜ「構造」という難しい言葉が出てきているかというと、
複数行のプログラムが、実際にどのような流れで動作するのかというのを知っておく必要があるからです。

処理の流れについて

ここで、次に進む前に理解しておくことがあります。

コンピュータプログラムでは、処理は上から下に流れると表現します。
一般的に「上から下に」を表現するには、矢印(などを書いたりしますが、
プログラミングの世界ではそのような表現はせず、
ただずらずらとプログラムが上から下に書かれているだけです。

プログラミング初心者の中には、ここがイメージ的に理解できない方も少なくありません。
上から下に流れることが、直感的に理解しにくいことなのです。

ここで理解しておいてほしいのは、「プログラムは上から下に」という流れで実行するということです。
その中で、繰り返したり、分岐したりという流れが組み合わさってくるのです。

これはVBA特有というものではなく、使うプログラミング言語が変わっても同じです。
(もちろん内部では複雑な処理が動いているわけですが。。。余計混乱しますので、特に説明しません)

3つの構造

以上のことを踏まえた上で、3つの構造について説明します。

順次というのは、1行づつ順番に実行していくということです。

そして、分岐というのは、条件に従って実行する処理を変えるということです。

最後にループ(繰り返し)というのは、同じ処理を繰り返し実行するということです。

プログラムの基本は、この3つの構造(順次分岐、ループ)が組み合わさってできていることを、まずはイメージしてください。

次に、そのイメージを、日本語で表現してみます。

順次処理の例

順次処理の例として、

1.A1セルに1を入力
2.A2セルにA1セルの値をコピー
3.A2セルの背景色を黄色に設定

であれば、この3つの処理を順番に実行するプログラムを書いていく、

ということになるわけです。

分岐処理の例

分岐が入った時はどうなるか?

1.A1セルに1、A2セルに3を入力
3.分岐
①<A1セルとA2セルの値が同じなら>A2セルの背景色を黄色に設定
②<A1セルとA2セルの値が違っていたら>A2セルの背景色を赤に設定

こうなるわけです。

繰り返し(ループ)処理の例

繰り返しはどうなるかというと、

1.<以下の処理を10回繰り返したか?>
2. シートを追加する
3.<1に戻る>

といった表現になります。

まとめ

プログラムは複雑になったとしても、基本はここに戻ります。

先に書きましたが、
最初は、そもそも順次処理がイメージ的に理解できないかもしれません。

書いてあるプログラムが、自動的に上から下に実行していくという概念が理解しにくいのです。

世の中で順番に実行するものは、番号が振られていたりしますが、
プログラムは、ただ上から下に順番に処理されます。
その中で分岐したり、繰り返したり、という動きをするのです。

はじめのうちは処理の流れを理解するために、次のようにするのも一つの方法です。

自分が何をやりたいのかを頭の中でイメージしてみる
それを日本語でずらずらと書いてみる
(順次、分岐、繰り返しの構造をちょっと意識しつつ)
そして1行づつプログラムに変えていく

いきなりプログラムを書くのではなく、
1ステップ「日本語で処理の流れを書く」という作業を挟んでみるのです。
こういった作業を繰り返すことで処理の流れというものを理解していくことができるようになります。

では、次はVBAプログラムを作成するための環境について説明していきましょう。