3日がかりのその仕事、3分で終わらせる方法教えます!
パソコンスキルの心技体

作ったデータの信頼性を高めるには? – Excelマクロ・VBAのテクニック

2011年11月10日
  • このエントリーをはてなブックマークに追加
  • follow us in feedly

エクセルマクロ・VBA達人養成塾 小川です。

キューバ旅行記、その23です。

ハバナでの、2日目の早朝。

エクセルマクロ達人養成塾塾長ブログ-「建設機器販売店」とかそんな意味。

「建設機器販売店」とかそんな意味。

エクセルマクロ達人養成塾塾長ブログ-通りにある工場をのぞいてみた。朝の7時台です。

通りにある工場をのぞいてみた。朝の7時台です。

エクセルマクロ達人養成塾塾長ブログ-奥に見える建物は廃墟ぽい感じ。

奥に見える建物は廃墟ぽい感じ。

塾長のキューバ旅行記、最初から読みたい方はこちらから


Excelマクロで作ったデータの信頼性を高めるには?

今日は、さいきんある受講生からいただいた、こんなご質問から。

基礎フォローアップ講座第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で書いたプログラムを実行した後に

1. Excel VBAでプログラムを書く前に

まず、表全体を見渡し、データの「形」をざーっと確認します。
そして、例外的な値が入っているセルかないか等、チェックをします。

例えば、ひらがなでふりがなが入っているはずのところに、なぜか漢字が紛れている、カタカナが紛れている、アルファベットが紛れている、等々
なんか、見ていて他と形が違う。

そういう事前チェックをすることが第一です。

2. Excel VBAで書いたプログラムの中で

それから、できあがったもののチェック以前に、プログラムの中に、「不正なデータが紛れ込んでいないかをチェックするロジック」を入れることは当然です。

例えば、東京23区内の住所情報のデータならば、
『「区」という文字はあるか』をInstr関数で評価し、
もしも値が0なら不正なデータとして拾い出して警告するとか。
1から100までの整数しか登場しないはずの列があるならば、
整数かどうかを評価するロジックを自分で考え、それを実装するとか

これで、ある程度、問題は防げます。

3. Excel VBAで書いたプログラムを実行した後に

上記の「1」、「2」ができたうえで、では、できあがったデータをどうやって確認するか、という段階に来ます。

なんですが…。

たいしたことはしません。

○目視する
○さらにテスト用のプログラムを書いてそれを動かす○
○仕上がっても、狂喜乱舞した勢いですぐに納品せず、少なくとも数時間は置いておく
  (↑その間に、いろいろと例外的な事項にも気が行くようになる)

というところでしょうか。

特に、「狂喜乱舞した勢いですぐに納品しない」ってのは、大事でしょうか(笑

多くの仕事がそうですが、現場で元データを扱った人(つまり、そのマクロを書いた人)の直感がいちばん信頼できます。
あなたがそのマクロを書いたのだから、あなたには、だいたい、どこがどう不安か見えるでしょ、ということです。

もしこの段階であまり自信がないようなら、そもそも、

最初の、

1. Excel VBAでプログラムを書く前に表全体を見渡し、データの「形」をざーっと確認し、例外的な値が入っているセルかないか等、チェックをする

ということろでの精査が甘い、ということです。

「現場で元データを扱った人」と言えるほど、現場に精通してはいなかった、ということですね。

マクロを書くのも、別に、特別なことではありません。

僕は研修でいつも言っていますが、はっきり言って、通常の仕事と同じです。

ただ、その仕事の手順書を、「エクセルVBA」という言語で記述するだけのことです。

エクセルマクロ達人養成塾塾長ブログ-プログラミングとは手順書作成なり!

手順書作成者はその手順書がカバーする
仕事全体について把握しなくてはなりません。

仕事全体を把握したあなたが書いた手順書に基づいて
誰かが仕事をしてくれたのなら、

きちんと仕事をしてくれたかどうかを
チェックするためのポイント、気になる点は、
手順書を書いたあなたが一番よく分かっている、ということです。

あ、あと、最後に。

納品時に、「これこれこういうロジックで処理をしました」ということを
リマークとして記述しておくのも良いです。

あとは、依頼してくれたあなたのほうで気をつけてね、ということです。
あと、こういうリマークを入れておくと、何か問題があったとしても、
「ここまでやってくれたのに検出してくれないなら、元データが悪いよね」
という話の展開に持って行きやすくなります。

ではでは、今日はそんなところで☆

エクセルマクロ・VBA達人養成塾、12月末~3月までの日程を追加しました。

年末特訓も用意しています。

キーワード

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

最新の記事

人気記事

最新記事

カテゴリ

最新コメント

タグクラウド