SSブログ

Excel VBA セルのループは r , c を使おう [自治会会計Excel技]

ループは i,j が使われることが多いですが、Excelに関しては
Cells(Row,Column)で示されますので、行(Row) , 列(Column)の rとc で示したほうが
判りやすいです。

For i = 1 to 100
  For j=1 to 100
     Cells(i,j ) = i
  Next
Next

i,jだと、行か列かが計算途中でわからなくなることがあります。

Dim r as Long
Dim c as Long

For r = 1 to 100
  For c=1 to 100
     Cells(r,c ) = r
  Next
Next

r, c のほうが読みやすいです。
ちなみに r, c は Longで宣言しておきましょう。32,767の壁を越えられなくなります。


タグ:VBA
nice!(0)  コメント(0) 

Exel VBA コメントのショートカットの変更 [Excel VBA]

VBAでコメントアウトする際にショートカットを設定すると便利です。

VBA-Comment.JPG

マウスで右上の コメントボタンを押せばいいのですが、マウス操作なしにできると少し便利になります。

例えば、下図のように Alt+/に設定するためには、選択したボタンの編集から
名前を (&/) とし イメージとテキストを表示にします。

VBA-Commnet-Change.JPG

これで Alt+/で カーソル行がコメントになります。
コメントを戻すショートカットは (&?) に設定しています。
Alt+Shift+/ でコメントを戻すことが出来ます。

少し便利になりました。

参考図書:ExcelVBAを実務で使い倒す技術


nice!(0)  コメント(0) 
共通テーマ:趣味・カルチャー

[Excel VBA]変数命名記法 キャメル記法 [Excel VBA]

変数宣言で様々な書き方をしてきましたが、やっと巡り合った記法に決めました。

変数:キャメル記法 単語の連接時に2目の先頭を大文字にします。
定数:スネーク記法 すべて大文字で単語の連接は アンダースコア '_' を使う

例えば)
Dim row1st as Long
Dim col1st as Long
Dim rowEnd as Long  
Dim colEnd as Long

Const NEW_FILENAME =”新しいファイル名"

その他に、関数で戻りがBoolean の場合、次のように決めるのが判りやすそうです。
Function isXxx 存在するかどうか
Function hasXxx, Xxxを持つかどうか
Function canXxx Xxx が実行できるかどか

変数の区切りのアンダースコアが嫌いだったので、キャメル記法で書きましょうと指定できるので、すっきりしました。
 
 なぜ、アンダースコアが嫌いか???
 101(英語)キーボードは日本語のアンダースコア(右下)のキーががなくて
打てないからです。いちいち英語モードに戻さんと打てない。。。
 なので、キャメル記法はありがたい。



nice!(0)  コメント(0) 

Excel VBA 関数は作るな。ありもの探せ

やりたいことを 自力で作ると、後でわからなくなる。
ありもののVBA 関数を使おう。Google するとすぐに判るのに。

例えば
Now に30分加えて 時間のところを取り出して、2桁にする。

dim a as string

a = Format (Hour(DateAdd("m",30,Now)),"00")

いずれもVBAの関数です。
Format関数は何気に便利です。

nice!(0)  コメント(0) 

[Excel VBA]VBA ツール・オプションの初期設定を変更すべき [Excel VBA]

Excel VBAは必ず先頭で
Option Explicit
宣言を書いて、変数宣言を強制しよう。
この文字がないVBAはメンテする気が起きません。
中級者でもVBAの初期設定のまま、宣言せずに使っている馬鹿者がいます。勘弁してほしい。
なので、ツール・オプションの設定で
  変数の宣言を強制する にチェックを入れておきます。
  ついでに自動構文チェックは外しておきます。

VBA-Option.JPG

自動構文チェックは編集途中で改行した際に、エラーメッセージのポップアップが現れ、鬱陶しい。
これが解放されます。エラーはそのまま赤文字のため、なんの問題もありません。

初級者には必ずこの設定をしてもらうとよいでしょう。

nice!(0)  コメント(0) 
共通テーマ:日記・雑感

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。