本来は言語は問わないのですが、VBAのサイトですのでVBAを例に解説します。何かをしようとしたとき、どのような手順になるか...これが重要です。「何かをする」何でも良いです、例えばDSでゲームをするとしましょう。・DSを取り出す(しまってあるところから持ってくる)・遊ぶゲームのカードを入れる・電源を入れる・ゲームで遊ぶ(ここは細かいことは省略します)・電源を切る・ゲームのカードを抜く・DSをかたずける細かい事は抜きにして、大抵はこのような感じになります。・後片づけこの3ステップになります。プログラミングにおいても、DSで遊ぶことと同様に、この手順が必要になります。これは、あらゆることにおいて共通していることです。DSで遊ぶとか、プログラミングだけの話ではなく、あらゆる事柄において存在する手順です。このように書くと、最近の言語学習者は、古い昔のパッチ処理の話かと思われる人もいるかもしれません。なく、人の行動・考えがそのようにできているのです。準備→目的の行動→後片付けこの、準備と後片付けは、いやというほど教えられてきたはずです。すべての事が、この3ステップに分解できるのです。そこで、プログラミングする時のロジックの組み立てにおいて、この3ステップを強く意識すると良いのです。これは、細分化していっても、その細分化された中に発生します。・主処理の中の後処理このように分解できるのです。・後処理もちろん、分解できない程度の小さなものは別ですが。逆に、規模が大きくなれば、前処理の中でさえ、3ステップに分解できることもあります。処理内容によっては、前処理または後処理のどちらか、または両方が存在しない場合もあることは承知しておいてください。大体こんな感じになります。部分はかなり違いが出てくることにはなりますが、記述の問題であり考え方としては共通です。具体的にExcelマクロVBAにおいて、どのようになるかを見てみましょう。簡単な例で、3ステップを見てみましょう。以下の表において昨年対比を計算するマクロVBAになります。C列はの%表示は事前に設定してあるとします。丁寧に書いてみました。多少の書き方の違いはあるにしても、大体はこんな感じになります。この3ステップが明確に表れています。Sub少し複雑な処理にしてみるとしましょう。昨年対比が100%未満の場合、昨年対比を赤字にしてみましょう。Sub処理内容がシンプルなので、各ステップが短いですが、3ステップの構造を確認してください。Ifこのようになることがあります。この程度の処理であれば、これでも問題はありません。今後の拡張性を考慮した場合、保守性を考えれば前者の方がよりよいと言えます。このステップを明確にしておくのです。プロシージャーの分割についても少しお話ししておきます。各処理の中が複雑になる場合、プロシージャーの分割に進みます。これらのの向上が重要なことは申し上げておきます。一般的には、後者のsample4が書かれることの方が多いように感じます。私は、どちらかというと前者のsample3を書くことの方が多い気がします。主処理がさらに複雑になり、複数のプロシージャーに分割する必要が出てきたとき、sample3の方が分割しやすく、全体の可読性が良いと思うからです。i)Nextこのように、機能追加しやすいのではないかと思います。全体としての処理内容に依存しますので、一概には言えませんが、そういう場合が多いということです。最後に、再度記載しておきます。これらを常に意識してプログラムしていくことで、より良いプログラムが書けるようになりますし、コーディングの速度も上がっていくものです。Next)|VBA入門8.セルに文字を入れるとは(Range,Value)|VBA入門9.空白セルを正しく判定する方法(IsEmpty,IsError,HasFormula)|VBA技術解説10.ひらがな⇔カタカナの変換|エクセル基本操作ホームマクロVBAマクロVBA技術解説プログラミングの基本~ロジックの組み立てこのサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。GASスプレッドシート入門スプレッドシート応用GAS入門GAS応用ホームマクロVBAマクロVBA技術解説プログラミングの基本~ロジックの組み立てこのサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。