Excel VBA で絶対に知っておくべきこと

公開日: : 最終更新日:2014/03/24 VBA

Excel_Logo

Excel VBA を使っていると、いろいろと思うことがある。
VBAの文法なんてちょっと調べたらすぐわかるが、
実践的なVBAの書き方は驚くほど少ない。

以下のサイトがとても参考になったので、
そのなかで、自分用にVBAのコーディングルール的にまとめておく。
随時追加する予定。

Excel VBAつかいまくってるからそろそろ腹にためてることをちょっと書き出すか – oe-roelのカオス落書き帳

個人的に知っておくべき順。

Integer型ではなくLong型を使う

Integer型を使うとほぼ間違いなくトラブルの元となる。
Integer型を忘れてLong型を使うこと。
例えば、列数をInteger型で扱っていると
Excelの上限値の半分も満たずにオーバーフローしてしまう。

if文の条件式は全て評価される

CやJavaは
if A && B
とあった場合、Aがfalseの場合はBは評価されないが、
VBAの場合評価されてしまう。
これは知らないと結構はまる。
だから必然的にif文のネストが増えることになる。

配列ではなく Collection を積極的に使う

配列を使うメリットなんてほとんどない。
動的配列を宣言して、ReDim なんて面倒くさいだけ。
便利なCollectionを使おう。
ただし、配列しか使えない場面もわずかではあるが存在するので、
その場合だけ配列を使う。

Collectionのインデックスは1から始まる

配列は0からだが、Collectionは1から。
非常に紛らわしいので注意すること。
VBAでCollectionのインデックスは1から

For Each を積極的に使う

VBAではいろんなオブジェクトを扱うので、
For Each を積極的に使う。

VBAエディタ上のCtrl+Yは行削除

普段、別の開発環境とかエディタを使っている人は
Ctrl+Z や Ctrl+Y を使用すると思うけど、
VBAエディタにおいては Ctrl+Y は行削除である。
これも最初はびっくりする。

ad

関連記事

Excel_Logo

VBAでCollectionのインデックスは1から

VBAでは配列ではなくCollectionを積極的に使ったほうが良い。 動的配列を宣言して

記事を読む

Excel_Logo

Excelの図形内テキスト検索の決定版をついに見つけた!

長年探していてやっと見つけた。 Excel では標準機能で図形(オートシェイプ

記事を読む

ad

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

ad

Windows10 英語版で Google 日本語入力をデフォルトにする

英語の勉強も兼ねて、Windows10 を英語にして使っている。 W

カフェイン抜き生活と、カフェインレスコーヒー

ぼくはコーヒーが大好きで、よく飲んでいた。 しかし、20

no image
ESファイルエクスプローラのリモートマネージャでSDにアクセスする方法

Android の ES ファイルエクスプローラは多機能かつフリーでと

お酒好きな人へのクリスマスプレゼント(ウイスキー編)

クリスマスプレゼントは何をあげたらいいか悩ましい。 しかし、お酒

no image
Windows10 で iPhone が iTunes に認識されない場合の対処法

自分用メモ。 環境 iPhone iPhone 7 Pl

→もっと見る

PAGE TOP ↑