GoGoマクロのブログ

初心者向けマクロ講座「Go!Go!マクロ」の筆者三太郎の公式ブログです。

他人の作った関数は理解しない?!

2009-11-04 09:33:26 | マクロ作成のコツ
【お便りから】

> Lesson67に文字列処理応用(おまけ)というのがありますが、
> そこに載っている下記のFunctionの意味なのですが
> 何をしているかは前後の説明で分かったのですが
> このプログラムの中身の意味がよく分かりません。

++++++++++++++++++++++++++++―
Function MyMid(buf)
  aa = ""
  For n = 1 To Len(buf)
    char1 = Mid(buf, n, 1)
    If char1 = ":" Or char1 = ":" Then
      aa = ""
    Else
      aa = aa & char1
    End If
  Next n
  MyMid = aa
End Function
++++++++++++++++++++++++++++―



【三太郎より】

これは、このLesson67の”おまけ”ということで色々な入力のケース

「お名前:山田太郎」でも、
「氏名:山田太郎」でも、
「お名前は?:山田太郎」でも、

といった具合に、名前の文字位置が変わったりした時にでも
いちいち文字数を数えてプログラムを変更する必要がない方法として
ご参考までに紹介した関数なんですが、

この場合、このMyMid()関数では、:記号によってその位置を判断し、
必要な部分のデータだけを取り出しています。


で、これおっしゃる通り初心者の方がこのFunctionの中身を理解する
のは中々難しいだろうと思いますが、逆に言うとこれは、
「意味を理解して(理解しようと努めて)はいけない!!」
というものなんです。

それはどういうことかと言いますと、(この辺は、特に中級編では詳しく
重点的に教えている内容ですが)
いわゆるブラックボックス関数という考え方です。

今では、ネット上などで他人が作ったプログラムのソースというのが
色々と入手ができるわけですが、

それらをいちいち、そのプログラムの意味を理解しなければ使えない!
ということであったなら、ちょっとレベルの上がった初級者以降のプロ
グラム作りは到底できませんので、レベルアップの為には
ブラックボックス関数という考え方は必修な事柄だと言えます。


元来、「他人の作ったプログラムの中身を理解する。」なんていうこと
は、すごく時間が掛かる且つ難しい話なわけです。(私のようなペテラン
のプロでも、他人が作ったプログラムは中々理解できないということは
多いものです。)

ですので、闇雲に貴重な時間を費やしてそのようなプログラムの意味を
理解しようとするのではなく、その使い方だけを理解した上で、中身に
ついてはブラックボックスとして活用できればよいのだ、と考えてくだ
さい。


例えば、このMyMid関数にしても、この様に比較的短いプログラムであ
ったとしても、これをいちいち理解しようと思えば相当の時間を要する
だろうと思いますし、中身を理解してもらおうと思って提供したという
趣旨のものではありませんので、初心者の方に全てを理解していただけ
るかは疑問な所です。


要は、

他人の作ったプログラムは、その中身を理解することに時間を費やすの
ではなく、それを自分のプログラムから呼び出して使いこなせるように
なる為の勉強(どういったデータを与えたら、どういったアウトプット
が得られる関数なのか?)ということに貴重な時間は使いましょう!!
ということです。ここでは、そこに専念して勉強していってくださいね。





その理由を詳しく知りたい方は、是非こちらをご覧ください。
 ▼賢くマクロ作りのコツをマスターする方法が満載▼ 

 マクロのプロが直伝する「エクセルマクロ成功の鉄則」





コメント    この記事についてブログを書く
« 社内就職活動【お便りから】 | トップ | マクロでグラフを作成する方法 »
最新の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。

マクロ作成のコツ」カテゴリの最新記事