人間で言うなら、サヴァン症候群でしょう、サヴァン症候群のPCに対して何かをしてもらいたい時に、それを文章で伝えるものがプログラムです。従って、プログラミングでは、あなたの常識は一切通用しないと思ってください。サヴァン症候群はともかくとしても、小学生でもわかる文章を書くつもりにならなければなりません。見れば分かるでしょうなんとなく分かるでしょうそんなことは通用しません。自分で判断してよなんてことが通用するはずもないのです。以下では、極めて単純化した具体例で説明します。自動的に出るようにする。上記の文章では、サヴァン症候群のPCには理解してもらえません。(賢い小学生なら理解するかもしれませんが・・・)「発注」シートの商品CDを「マスタ」シートの商品CDから見つける。「マスタ」シートに商品CDが見つかったら、同じ行にある商品名と単価を「発注」シートの商品名と単価に入れる。「発注」シートに商品名と単価が入ったら、「発注」シートの発注数×単価を計算して金額に入れる。これを、「発注」シートの商品CDが入っている全ての行について行う。プログラムを書くという事は、このくらいの文章を書くという事です。最初は、とにかく日本語で書いてみましょう。簡潔明瞭に書きましょう。した長文は、かえって分かりずらいものです。書いた日本語の文章を読んで、小学生でもわかる文章かどうか見直してください。この文章が書ければ、プログラムはほぼ完成したと言っても過言ではありません。後は、プログラミング言語に翻訳すれば良いだけです。)が必要ですし、翻訳作業に対する慣れも必要です。基本的な文法さえ知っていれば、単語や慣用句は書籍やネットで調べれば大抵は直ぐに見つかります。(ネットでこれらを見つける時には、当サイトも検索でヒットすることがあると思います。)では、先のような文章を書くときに気を付けることは何でしょうか。固有名詞や主語を省略しないこれを省略した文章は、日本人には多いように思います。商品名と単価を取得これしか書かない場合が多いのです。「文脈で分かるでしょ!」いやいや、サヴァン症候群のPCには理解してもらえないのです。何を使ってどこから取得するのか、省略せずにちゃんと書きましょう。このような文章が書けたら、この文章をプログラミング言語に翻訳します。書いた日本語の文章なので、コピペでエディターに貼付けてコメントに使いましょう。このコメントを見ながらプログラムを書き進められますし、この段階で文章の不備(つまりは処理内容の不備)が見つかることも多々あります。・・・「マスタ」シートの商品CDから見つけて・・・これを翻訳する時、FindなのかMatchなのか、はたまたVlookupなのか・・・このような事ばかり気にしてしまい人が多いように感じます。今あなたが使える技術で書けば良いのです。時々、このような場合に「どれが良いですか?」と聞かれることがありますが、どれでも良いです、あなたが書きやすいもので書いてください。このような事は、微々たる問題です。その微々たる問題で悩んで時間を費やすより、さっさと書き進めて下さい。最後まで書いて、正しく動かすことを優先してください。プログラムは、正しく動かなければ、ただの落書きと言われても返す言葉がありません。正しく動くことを確認したら、必ず見直してください。日本語の文章だって推敲するでしょう、プログラミングも同じことです。書きっぱなしでは絶対にダメです。正しく動いたプログラムコードはしっかりと保存した上で書き直してみましょう。書き直しすることを面倒がってはいけません。納得いくまで書き直してください。この書き直しは、あなたのプログラミングのスキルを確実に向上させます。実業務で使うプログラムの場合は、納期の範囲内で行い費用対効果を考慮するのは言うまでもありませんが。※本記事は、プログラミングを始めたが、なかなか上達しないという方に向けた助言になります。ExcelマクロVBAで、サクッと自動化しようとしたときに、この文章化が必須という事ではありません。頭の中で考えたことを、そのままVBAで記述できるなら、それで構いません。私も、受注したシステム開発でなければ、いきなりVBAを書き始めますので。話の例として単純なものをより詳しく文章にしたものです。実際には、格段に複雑な処理になりますので、ここまで詳細に書かなくてもよいでしょう。※システム開発における工程このような文章は、システム開発における工程では「詳細設計」にあたります。システム開発に携わる人にとっては、当たり前の話であることを申し添えておきます。プログラミングとはこのサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。掲載のVBAコードは自己責任で使ってください。万一データ破損等の損害が発生しても責任は負いません。