エクセルマクロ達人養成塾 小川です。
今日は、以前から頼まれていた経営者ばっかりが受講生のEvernoteの使用法説明会があり。
開始時間の16時に間に合うよう、会場となっていたある経営コンサルタントさんのところに行ってきました。
そして、「こんにちは~」と声をかけると。
秘書の方から、「え?小川さん、来週じゃなかったですか?」と。
「え? ( ̄□ ̄;)」
また、やっちまった~ ヾ(´ー`)ノ
..ということで、仕方ないので、西新宿の京王プラザでひとりでお茶している小川です ヾ(´ー`)ノ
..ということで、前フリもそんなところで、昨日のつづきを。
前回の記事「エクセルマクロを書く人のための、3つのQuoteその2」
http://ameblo.jp/kanjizaibosatsu/entry-10531953231.html
最近、エクセルマクロ達人養成塾のセミナーで必ず言うようにしている「エクセルマクロをを書く人のための、3つのQuote」というのがあります。
今回は、その3として、以下の言葉を紹介します。
Nothing is particularly hard if you divide it into small jobs.
(どんなことでも、ひとつひとつ細分化されたものの積み重ねていくならば、決して困難ではない)
– Henry Ford
「ちょっと凝った機能のマクロを書こうと挑戦すると、エラーが頻発してしまって訳が分からなくなってしまう」という人は多いです。
そして、そういう人がどのようにマクロを書いていっているのかというと。
「10行以上もあるマクロを上から順番に書こうとしている」
んですね。
そして、ひいひい言いながらようやくマクロを書き上げて、実行しようとすると。
○構文がおかしいものが2つ
○途中で、変数名が、冒頭に宣言したものと変わってしまっているところが2つ
○打ち間違いがある3つ
○ForNext構文の「For」を書いたけど、「Next」を書いていないところが1つ
という感じでエラーが頻発。
そして、どの現象がどの問題を引き起こしているのかも分からず。
あれこれいじっているうちに、余計にハマってしまって。
「あ゛~っもう!訳がわからん!」
と言って投げ出してしまいます。
あなたの周りにも、そういう感じの人がいるかもしれませんね。
こういう人がハマってしまうのは、理由があります。
それは、
「難しい課題を、一度にこなそうとするから」
なんですね。
そうではなくて。
正しくは、
全体のうち、まず、2行~3行のマクロを書いてみたら、一度、テストのために、そのマクロを実行してみること。
これを、徹底するようにしたいです。
そして、そのテスト実行でエラーが出たら、その場ですぐに修正してしまうこと。
つづきを書くのは、とりあえずそこまでがきちんと動作したら、です。
そういう風に、普段から「2行~3行マクロを書いたら実行する」というクセをつけておくと、新しく問題が出たとしても、
「ああ、今新しく書いたこの2行~3行の間のどこかがおかしいんだな」と検討をつけられるので、問題点の判別、修正が容易になります。
僕だって、込み入った機能のマクロを作るときは、慎重にテストをくり返しながら書いていきます。
大がかりなマクロを一気に作ろうとするから、ハマってしまう。
細かく慎重にテストをくり返しながら作っていくから、最終的には目的の機能のマクロを作ることができる。
まさに、
Nothing is particularly hard if you divide it into small jobs.
です。
特に、「ForNext構文」や「If文」などを使おうとするとハマってしまう、という方。
「プロパティの設定の構文」「プロパティの取得の構文」「メソッドの実行の構文」といったエクセルマクロで避けて通れない基本構文の理解も曖昧な方。
「変数」の使い方がよくわかっていない方。
そういう、「基礎がおざなりな方」ほど、慎重にこまめにテストをくり返しながらマクロを書いていくようにしたほうが良いです。
どんなに長いプログラムも、ひとつひとつの「きちんと動く部品」の積み重ねです。
マクロを書くときには、そのことを意識していてくださいね。
テスト方法の基本については、そのうち、どこかのタイミングで書こうと思います。