すべてのカテゴリ » インターネット・パソコン » 技術・プログラミング

質問

終了

最近、VBAの独学を始めましたが、知っていると便利な小技と使い道を知りたいと思います。

※正解とかはないので、考え方と使い道を必ず教えてください。

例)
実行中のファイル名を取得する際に、グローバル変数もしくは、関数への引数で渡していたが、コードが見にくくなってしまいました。

これを解決する為に、指定されたセルから、実行ファイル名を特定する為、parentプロパティを用いて、「指定セル.Parent.Parent.Name」のようにすることで、コードの可読性を高めた。

  • 質問者:SE学生
  • 質問日時:2009-04-05 16:38:32
  • 0

並び替え:

文字列検索には、 InStr()関数が便利です。
「変数a に "yyyyy" という文字列があったら、処理をする」
というのは、
 if(InStr(a,"yyyyy")<>0) then
  ・・・・
 End If
という具合。

文字列の抜出しには、Left( )やMid( ) などではなくて、
Left$( )やMid$( ) などの「$」マークがついた関数を使用すると、
処理速度が全然違います(処理が高速になって、極端な話、2倍程度の違いがある)

他にもいろいろあるけれど、
私は、処理方法を調べるときに、下記のサイトをよく利用します。
 「mougモーグ の 即効テクニック」http://www.moug.net/tech/
参考になれば、幸いです。

また、
VBA というよりも、プログラミング一般について ですけれど、
変数は、極力、”局所的”に使用するのが Best です。
その解説は下記のURLを参照してください。
 「エクセル大辞典:スコープを意識したプログラミング」
  http://home.att.ne.jp/zeta/gen/excel/c04p10.htm

===補足===
”$”の文字が、どのような経緯で用いられるようになったかは、
私も知りませんが、
”$”がない ⇒ バリアント型を返す形式
”$”がある ⇒ 文字列型(String)を返す形式
になっています。
(VBAのヘルプ:「関数からの文字列の取得」に記述)

エラー処理などで、String型以外が必要とする場合は、
自動的にデータ型変換をしてくれるVariant型が便利ですが、
使用メモリ量を多く消費したり、処理速度が遅くなったりする欠点があります。

尚、Left$、Mid$ 以外にも、Chr$、Date$、Format$、Str$ など等 多数あります。

  • 回答者:デンシン (質問から9時間後)
  • 1
この回答の満足度
  
とても参考になり、非常に満足しました。回答ありがとうございました。
お礼コメント

ご回答ありがとうございます。

一点だけ質問させてください。
Left$ の$ってどんな意味があるのですか?
元から高速化されているならば、これだけを使えばいいと思いますが、何かメリットデメリットがありそうですね。
結構使っている人が多いみたいですね。

■■■■■■
補足コメントありがとうございました。

理解が深まりました。
拍手をプレゼント♪使い分けながら、更に理解を深めます。

関連する質問・相談

Sooda!からのお知らせ

一覧を見る