VBAで高速処理に欠かせない配列処理
ExcelVBAマクロは動作が遅いと言われがちです。それは大きな間違いです。
大体そういう方は、大量のデータをワークシート内のセルで、検索、代入、計算しており、
その処理方法が間違いです。
一次元配列もしくは二次元配列にデータを格納してから処理をすることで、
速度の改善が見込めます。
ただ、配列処理となると厄介だから勉強していない!という初心者の方も多いでしょう。
単純に、ワークシート内のセル範囲と配列は同様と考えると簡単かもしれません。
Join関数を使用して配列の要素を結合する
'■Join関数を使用し、配列をまとめる Sub sample_Array_Join() Dim arr(3) As String '■変数を格納 arr(0) = "Windows" arr(1) = "iOS" arr(2) = "Android" arr(3) = "Linux" '■配列の値をまとめて表示する MsgBox Join(arr, vbCrLf) '■vbCrLfの表示イメージ 'Windows 'iOS 'Android 'Linux '■配列の値をまとめて表示する MsgBox Join(arr, "") '""の表示イメージ 'WindowsiOSAndroidLinux '■配列の値をまとめて表示する MsgBox Join(arr) '引数省略した場合の表示イメージ 'Windows iOS Android Linux End Sub
その他
- 引数省略した場合は、半角スペースで区切られて表示します。
- 半角スペースも不要な場合は“”(空文字列)を入力すれば、区切り文字なしで表示します。
- 「実行時エラー13 型が一致しません」エラーが表示された場合は一次元配列ではなく、
二次元配列の可能性が高いです。(下記、関連記事を参照してください)
関連記事
二次元配列ではJoin関数は使えません。Join関数を使用したい場合は、
2次元配列を1次元配列に変換(抽出)しましょう。
コメント