和風スパゲティのレシピ

日本語でコーディングするExcelVBA

Dictionary

変数宣言(Dim)とNewを1行で済ませてよいか

Collection/Dictionary/FileSystemObject/自作クラスを使用するとき、Dim x As X、Set x = New Xと2行で宣言する方法と、Dim x As New X と1行で宣言する方法があります。この違いはNothing時の動きと、Initializeの実行タイミングに現れます。

Dictionary.Keys(i)/Items(i)と書いてはいけない

DictionaryのKeys/Itemsメソッドは全key/itemを1次元配列にして返すメソッドです。つまりKeys(i)はKeysの「引数i」ではなく、Keysが返す配列の「添字i」ということです。Keys(i)を使用したコードは都度配列を生成するため非常に遅くなります。

Dictionaryで要素ごとのデータ数をカウントする

Dictionaryオブジェクトを使って、要素ごとのデータ数をカウントする方法を解説します。Excel上では、要素ごとのCOUNTIFや、ピボットテーブルで行う処理ですが、VBAの内部で行う場合は Dictionaryを使うと、簡単に書けて処理速度も高速です。

Dictionaryで重複のないリストを作る

Dictionaryオブジェクトを使って、重複のないリストを作成する方法を解説します。リストを処理するコードは、Dictionaryを使うと簡潔で処理速度も高速になります。Dictionaryの入り口としてもいい題材なので、ぜひ覚えていってください。