エクセルマクロ・VBA達人養成塾 小川です。
キューバ旅行記、その23です。
ハバナでの、2日目の早朝。
「建設機器販売店」とかそんな意味。
通りにある工場をのぞいてみた。朝の7時台です。
奥に見える建物は廃墟ぽい感じ。
今日は、さいきんある受講生からいただいた、こんなご質問から。
基礎フォローアップ講座第6回の解説ですが、
問題2においては、
「プロジェクトX」は、特集が3回あり、放送回数は、合計190回のようです。
そのため、
187回でループしますと、整列した最終行は、
「第184回」までしが転記されません。
解答のE列をカンニングして、ループを190回に修正すると、
第187回まで表示されました。
実務のなかでは、
仕上がったつもりでは、許されません。
解説の中で紹介されてました、
マクロ実行結果を検証する方法について、
お教えいただけませんでしょうか?
ご多忙中、よろしく、お願いします。
○○敏幸
何かというと。
エクセルマクロ・VBA達人養成塾の基礎コースでは、セミナー後のフォローアップで動画セミナーを配信しています。
この動画は、全18回に渡り、毎日、If文やFor Next構文を組み合わせたマクロえ書くためのフォローアップの課題が届く、というものです。
解説は動画でしていて、その解説だけでも合計3時間19分28秒の分量です。
で、その中で、こういう課題があります。
『NHKの「プロジェクトX」の放送回とその内容をネットから拾ってきたデータを元にして、自分の欲しい形に整理された一覧表を作る』
「プロジェクトX」であること自体には意味はないのですが、
『「ある程度規則的」くらいに整理された文字列をベースにして、自分の欲しい表を作る』
という課題として応用幅の広いやり方を学べるので、この題材を使っています。
で、
以下、僕の回答ですが…。
以下の3つのステップのそれぞれでチェックをしていきます。
1. Excel VBAでプログラムを書く前に
2. Excel VBAで書いたプログラムの中で
3. Excel VBAで書いたプログラムを実行した後に
まず、表全体を見渡し、データの「形」をざーっと確認します。
そして、例外的な値が入っているセルかないか等、チェックをします。
例えば、ひらがなでふりがなが入っているはずのところに、なぜか漢字が紛れている、カタカナが紛れている、アルファベットが紛れている、等々
なんか、見ていて他と形が違う。
そういう事前チェックをすることが第一です。
それから、できあがったもののチェック以前に、プログラムの中に、「不正なデータが紛れ込んでいないかをチェックするロジック」を入れることは当然です。
例えば、東京23区内の住所情報のデータならば、
『「区」という文字はあるか』をInstr関数で評価し、
もしも値が0なら不正なデータとして拾い出して警告するとか。
1から100までの整数しか登場しないはずの列があるならば、
整数かどうかを評価するロジックを自分で考え、それを実装するとか
これで、ある程度、問題は防げます。
上記の「1」、「2」ができたうえで、では、できあがったデータをどうやって確認するか、という段階に来ます。
なんですが…。
たいしたことはしません。
○目視する
○さらにテスト用のプログラムを書いてそれを動かす○
○仕上がっても、狂喜乱舞した勢いですぐに納品せず、少なくとも数時間は置いておく
(↑その間に、いろいろと例外的な事項にも気が行くようになる)
というところでしょうか。
特に、「狂喜乱舞した勢いですぐに納品しない」ってのは、大事でしょうか(笑
多くの仕事がそうですが、現場で元データを扱った人(つまり、そのマクロを書いた人)の直感がいちばん信頼できます。
あなたがそのマクロを書いたのだから、あなたには、だいたい、どこがどう不安か見えるでしょ、ということです。
もしこの段階であまり自信がないようなら、そもそも、
最初の、
1. Excel VBAでプログラムを書く前に表全体を見渡し、データの「形」をざーっと確認し、例外的な値が入っているセルかないか等、チェックをする
ということろでの精査が甘い、ということです。
「現場で元データを扱った人」と言えるほど、現場に精通してはいなかった、ということですね。
マクロを書くのも、別に、特別なことではありません。
僕は研修でいつも言っていますが、はっきり言って、通常の仕事と同じです。
ただ、その仕事の手順書を、「エクセルVBA」という言語で記述するだけのことです。
手順書作成者はその手順書がカバーする
仕事全体について把握しなくてはなりません。
仕事全体を把握したあなたが書いた手順書に基づいて
誰かが仕事をしてくれたのなら、
きちんと仕事をしてくれたかどうかを
チェックするためのポイント、気になる点は、
手順書を書いたあなたが一番よく分かっている、ということです。
あ、あと、最後に。
納品時に、「これこれこういうロジックで処理をしました」ということを
リマークとして記述しておくのも良いです。
あとは、依頼してくれたあなたのほうで気をつけてね、ということです。
あと、こういうリマークを入れておくと、何か問題があったとしても、
「ここまでやってくれたのに検出してくれないなら、元データが悪いよね」
という話の展開に持って行きやすくなります。
ではでは、今日はそんなところで☆
エクセルマクロ・VBA達人養成塾、12月末~3月までの日程を追加しました。
年末特訓も用意しています。