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次元配列に変換(抽出)しましょう。




コメント