プログラミングとは
コンピューター(PC)は、こと計算については天才的な能力を持つが、その他の事については一般人の常識が通用しない子供のような存在です、
人間で言うなら、サヴァン症候群でしょう、
サヴァン症候群のPCに対して何かをしてもらいたい時に、それを文章で伝えるものがプログラムです。
プログラミングでは、あなたの常識は一切通用しないと思ってください。
見れば分かるでしょう
なんとなく分かるでしょう
そんなことは通用しません。
ましてや、
自分で判断してよ
なんてことが通用するはずもないのです。
商品CD、商品名、発注数、単価、金額
商品CD、商品名、単価
商品名、単価、金額が自動的に出るようにする。
(賢い小学生なら理解するかもしれませんが・・・)
「マスタ」シートに商品CDが見つかったら、同じ行にある商品名と単価を「発注」シートの商品名と単価に入れる。
「発注」シートに商品名と単価が入ったら、「発注」シートの発注数×単価を計算して金額に入れる。
これを、「発注」シートの商品CDが入っている全ての行について行う。
最初は、とにかく日本語で書いてみましょう。
ただし、簡潔明瞭に書きましょう。
だらだらした長文は、かえって分かりずらいものです。
書いた日本語の文章を読んで、小学生でもわかる文章かどうか見直してください。
この文章が書ければ、プログラムはほぼ完成したと言っても過言ではありません。
もちろん、この翻訳作業には言語の知識(文法、単語、慣用句等々)が必要ですし、翻訳作業に対する慣れも必要です。
しかし、基本的な文法さえ知っていれば、単語や慣用句は書籍やネットで調べれば大抵は直ぐに見つかります。
(ネットでこれらを見つける時には、当サイトも検索でヒットすることがあると思います。)
「文脈で分かるでしょ!」
何を使ってどこから取得するのか、省略せずにちゃんと書きましょう。
せっかく書いた日本語の文章なので、コピペでエディターに貼付けてコメントに使いましょう。
このコメントを見ながらプログラムを書き進められますし、
この段階で文章の不備(つまりは処理内容の不備)が見つかることも多々あります。
・・・「マスタ」シートの商品CDから見つけて・・・
これを翻訳する時、FindなのかMatchなのか、はたまたVlookupなのか・・・
このような事ばかり気にしてしまい人が多いように感じます。
どれでも良いのです。
今あなたが使える技術で書けば良いのです。
時々、このような場合に「どれが良いですか?」と聞かれることがありますが、
どれでも良いです、あなたが書きやすいもので書いてください。
このような事は、微々たる問題です。
その微々たる問題で悩んで時間を費やすより、さっさと書き進めて下さい。
最後まで書いて、正しく動かすことを優先してください。
プログラムは、正しく動かなければ、ただの落書きと言われても返す言葉がありません。
日本語の文章だって推敲するでしょう、プログラミングも同じことです。
書きっぱなしでは絶対にダメです。
もしこの時点で、
Findで書いたけどMatchの方が良いのでは・・・
そう感じたら、
正しく動いたプログラムコードはしっかりと保存した上で書き直してみましょう。、
決して、書き直しすることを面倒がってはいけません。
納得いくまで書き直してください。
この書き直しは、あなたのプログラミングのスキルを確実に向上させます。
ただし実業務で使うプログラムの場合は、納期の範囲内で行い費用対効果を考慮するのは言うまでもありませんが。
プログラミングを始めたが、なかなか上達しないという方に向けた助言になります。
ExcelマクロVBAで、サクッと自動化しようとしたときに、この文章化が必須という事ではありません。
頭の中で考えたことを、そのままVBAで記述できるなら、それで構いません。
私も、受注したシステム開発でなければ、いきなりVBAを書き始めますので。
話の例として単純なものをより詳しく文章にしたものです。
実際には、格段に複雑な処理になりますので、ここまで詳細に書かなくてもよいでしょう。
このような文章は、システム開発における工程では「詳細設計」にあたります。
システム開発に携わる人にとっては、当たり前の話であることを申し添えておきます。
同じテーマ「エクセル雑感」の記事
「ネ申Excel」問題 への同意と反論
新着記事NEW ・・・新着記事一覧を見る
TRIMRANGE関数(セル範囲をトリム:端の空白セルを除外)|エクセル入門(2024-08-30)
正規表現関数(REGEXTEST,REGEXREPLACE,REGEXEXTRACT)|エクセル入門(2024-07-02)
エクセルが起動しない、Excelが立ち上がらない|エクセル雑感(2024-04-11)
ブール型(Boolean)のis変数・フラグについて|VBA技術解説(2024-04-05)
テキストの内容によって図形を削除する|VBA技術解説(2024-04-02)
ExcelマクロVBA入門目次|エクセルの神髄(2024-03-20)
VBA10大躓きポイント(初心者が躓きやすいポイント)|VBA技術解説(2024-03-05)
テンキーのスクリーンキーボード作成|ユーザーフォーム入門(2024-02-26)
無効な前方参照か、コンパイルされていない種類への参照です。|エクセル雑感(2024-02-17)
初級脱出10問パック|VBA練習問題(2024-01-24)
アクセスランキング ・・・ ランキング一覧を見る
1.最終行の取得(End,Rows.Count)|VBA入門
2.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
3.変数宣言のDimとデータ型|VBA入門
4.繰り返し処理(For Next)|VBA入門
5.RangeとCellsの使い方|VBA入門
6.ブックを閉じる・保存(Close,Save,SaveAs)|VBA入門
7.セルのクリア(Clear,ClearContents)|VBA入門
8.メッセージボックス(MsgBox関数)|VBA入門
9.条件分岐(Select Case)|VBA入門
10.ブック・シートの選択(Select,Activate)|VBA入門
このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
記述には細心の注意をしたつもりですが、
間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。