変数 知らなかった本当の使い方!
知らないことを、知らない私自身でした。w
変数(へんすう)は良く入れ物にたとえられます。
上の図の様なロッカーだとしたなら色別でロッカーに入れられる変数の種類を表します。
図のロッカーを横から見たら入れられる長さがありますが?(右側の図を奥行とします)
変数のデータ型によってメモリ(入れられる長さ)が決まっています。
小さいロッカーに大きいものは入れられないですが、大きいロッカーに小さい物を入れるのは無駄な面もあります。
最適なロッカーを使うのが良いようです。(最適な変数を使うためにする=変数の宣言)
マクロ学習法とは 6(変数) - 趣味のエクセルで当てようロト・ナンバーズ
マクロ学習法とは 10(続・変数) - 趣味のエクセルで当てようロト・ナンバーズ
何気なくネットで変数について見ていたら、私は知らなかった事に気づかされました。
Integer は Long に 置き換えます。
変数Aの宣言で
Dim A As Integer 等と書きますが? (参考書に1行だけ、良く書いてる)
複数の変数がある場合 私はよく考えずに、まとめて
Dim A , B , C As Integer
と書いていました。(A , B , C とも同じデータ型となると思っていたw)
この場合において 変数 C は Integerで整数型になりますが
変数 A、B は Integerで整数型になりません!
変数 A、B は変数の型が宣言されてない。(宣言はされない)
この場合は 変数 A B は バリアント型 になります!
正しくは
Dim A As Integer , B As Integer , C As Integer
と書くようです。
そして、バリアント型は一番メモリ(バイト数)を使うので
大量データのマクロ処理において、バリアント型変数が多いと
マクロ処理に時間がかかる様になる!
マクロのスピードアップ - 趣味のエクセルで当てようロト・ナンバーズ
Dim A , B , C As Integer (悪い例)
☟
Dim A As Integer , B As Integer, C As Integer (正しい例)
または別々に下記の様に書く
Dim A As Integer
Dim B As Integer
Dim C As Integer
変数と言っても、下の表の様に数字だけでなく文字や色々あります。
数字だけでも、整数や小数点 それぞれにもさらに種類は色々あります。
変数宣言無しで、エラーを起こしてマクロがおかしくなることは無いのですが?
(私の場合で今のところはですが、今後は分かりませんね?)
マクロの処理時間が長くなるとしたら、やはりエラーに近いかも知れません。
このブログのマクロの変数宣言に上記のような間違った書き方が多くありますが?
正しくは(悪い例)以外とします。
エクセルVBAのIE(InternetExplorer)制御サイトさんの記事から引用
(変数のデータ型について)