私のWebサイトのVBAでの配列の受け渡しに関する記事で、結構根本的なミスをやっていました。
バリアント型としてだけでなく、配列としてFunctionプロシージャの戻り値を返すこともできる、ということなんですが。
VBの経験者の方からすると、あるいは常識だったかもしれません。
この記事は、私のサイトの中では、割と検索でやって来る人が多い(らしい)ページなので、非常に申し訳なく思っています。
この点だけでなく、自分の書いた記事でも、時間をおいて読み返すと、正直、ところどころ、微妙だなぁと感じる部分に出くわすことがあります。
他のWebサイトとか本とかをろくに調べず、自分の検証だけで書いているところも多いので、まだ他にも間違っている部分や説明が不足している部分は、結構あるのではないかと思います。
何か気付かれたことがあった方は、あちらの送信フォームからでもこのブログのコメントからでも、お教えいただけるとありがたいです。
2009年06月27日
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/30112565
※言及リンクのないトラックバックは受信されません。
この記事へのトラックバック
http://blog.sakura.ne.jp/tb/30112565
※言及リンクのないトラックバックは受信されません。
この記事へのトラックバック
で、配列の受け渡しについてですが(解り易さへの配慮は抜きにして)、
例えば
"[VB] ソートのアルゴリズム"
http://support.microsoft.com/kb/169617/ja
こんな感じで配列をVariant変数にコピーしてからSubプロシージャの引数としてByRef型の受け渡しをするのが、
私には扱いやすいです。
そういう意味では私の場合殆ど必ずVariantで受け渡しして、エラー処理(エラー値を返したり)やデバッグで楽しちゃってます。
(Functionにする場合も引数で返してダミーのVariant変数に[True|False|!Err]を返すとか。)
でもこれって、わかり(説明し)難いですよね。
提案が2つ。
配列処理の過程をローカルウィンドウで確認する提案を盛り込めないいでしょうか。
「配列は難しい」と感じている殆どの
場合ローカルウィンドウを使ってない気がするんです。
Lbound、Ubound、次元、の確認をするだけでも、随分安心(?)できると思うのです。
Option Base 1 って私は学習目的でしか書いたことないのですが、
Option Base に縛られるものと、そうでないもの、の区別が一般にはわかり難いようです。
その点のフォローがも少しあるともっと良いかもです。
最近知ったのでは、Array()とVBA.Array()の違い、とかも(?)。
と、日頃下手な説明で混乱させてる私が、まだまだ勉強が足りない私が、こんなこと書くのもどうかと思うのですが。
主旨としては、私なりのお詫びだったりするので、あしからず、です。
いつも大変参考になります。
ただ、ここのところちょっと込み入ってまして、このブログの更新も停滞中。(^^;)
Webサイトに手を着けられるのはまだちょっと先になりそうです。
(とりあえず、試験公開中の「用語辞典」の仕様と項目数をもうちょっとなんとかしたいと思っていたのですが、そちらの作業も停まってしまいました)