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

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

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

記事を読む

Excel_Logo

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

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

記事を読む

ad

Message

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

ad

no image
hulu での英語学習効果を比較的に高める Chrome 拡張

最近、英語学習も兼ねて、ゲーム・オブ・スローンズ(Game of Th

no image
iOS11にしたらBluetoothイヤホンの最大音量が小さくなった件とその対応

iPhone7 Plusを、今日から配信されたiOS11にさっそくアッ

Bose QuietControl 30 がすばらしすぎる

Bose のワイヤレスノイズキャンセリングイヤホン QuietCont

no image
mineoからLINEモバイルにMNPした話 その2

前回の続き。 mineoからLINEモバイルにMNPした話 その

mineoからLINEモバイルにMNPした話 その1

mineo エントリーパッケージ au/ドコモ対応SIMカード データ

→もっと見る

PAGE TOP ↑