配列記事のまとめです。
配列処理となると厄介だから勉強していない!という初心者の方も多いでしょう。
配列は、ワークシート内のセル範囲と配列は同様と考えると簡単かもしれません。
配列をマスターする事で、データの処理を配列内で行う事で、VBAの速度の改善が見込めます。
また配列と同じくDictionaryも覚える事でコードの改善が見込めます。
配列の基本
- 配列の宣言(静的/動的/1次元/2次元)
- 配列を作成する(指定要素)【Array関数】
- 配列を作成する(For文)
- 配列を作成する(セル範囲)
- 配列の要素を変更・更新する
- 配列をセルに反映する
- 配列を初期化する【Erase関数】
一次元配列のみの記事
- 昇順並び替え(ソート)する【クイックソート】
- 降順並び替え(ソート)する
- 〇番目に指定要素を追加する(先頭、末尾、指定位置)
- 〇番目の指定要素を削除する
- 一次元配列の要素の合計値を求める【WorksheetFunction.Sum】
- 一次元配列の要素の平均値を求める
- 一次元配列で条件に該当した要素を 別の配列にコピーする
- 一次元配列で完全一致した要素が何番目かを取得する
- 一次元配列で部分一致した要素を取得する【Filter関数】
- 一次元配列を縦に結合(マージ)する【Join/Split】
- 一次元配列を結合して、二次元配列に変換する
- 一次元配列を二次元配列に変換する
- 一次元配列に取り込んだA1形式の列情報をRIC1形式に変更する
- 一次元配列をイミディエイトウィンドウに全て出力する
- 定数配列を使用する(Split/Arrayで代用)
- 開いている特定のブック名を配列に格納する
- 開いている全てのブック名を配列で全取得する
- ブック内の特定のシート名を配列に格納する
- ブック内の全てのシート名を配列で全取得する
- フォルダ内指定条件のファイル名をフルパスで配列として取得する
二次元配列のみの記事
- 二次元配列の行列(縦横)を入れ替える(65536件まで)→改良版(65537件以上処理可能)
- 二次元配列を動的に行数(一次元目)を増やす(65536件まで)→改良版(65537件以上処理可能)
(旧と改どちらが早いのか?)(65536件を超えるとどうなるか?) - 二次元配列をランダムに並び替える【Rnd関数】
- 二次元配列で〇番目の列を削除する
- 二次元配列で〇番目の行を削除する
- 二次元配列で〇番目に空白列を追加する
- 二次元配列で〇番目に空白行を追加する
- 二次元配列を列方向に結合(マージ)する
- 二次元配列を行方向に結合(マージ)する
- 二次元配列で列をキーにソートする(昇順or降順)
- 二次元配列で複数列をキーにソートする(昇順or降順)
- 二次元配列の列or行を 一次元配列に変換する
- 二次元配列の一部をワークシートに貼付する
- 二次元配列の要素の平均値を求める
- 二次元配列の要素の合計値を求める
- 二次元配列で条件に該当した行を 別の配列にコピーする
- CSVファイルを二次元配列に格納する
一次元配列/二次元配列共通の記事
- 配列の次元数開始を1からスタートさせる【Option Base 1】
- 配列の次元数を取得する【Ubound関数応用】
- 配列の次元数の下限を変更する【1toX】
- 配列から空白(Empty)を削除する
- 要素をFor文で取得する
- 要素をForEach文で取得する
- 要素の最大値・最小値を取得する【MAX/MIN関数応用】
- 配列の要素数の最小値を取得する【Lbound関数】
- 配列の要素数の最大値を取得する【Ubound関数】
- 配列が空かどうか判定する【Ubound関数応用】
- 配列内の文字を全角→半角変換する(一次元/二次元)
- 配列から不要文字を削除する(一次元/二次元)
- 「完全一致」した要素を取得する
- 配列を別の配列にコピーする
- 配列の型を変換する(一次元/二次元)
- 配列を引数として他のプロシージャに渡す
- 戻り値として配列を受け取る
- 配列かどうか調べる【IsArray関数】
エラー回避
- この配列は固定されているか、または一時的にロックされています
- コンパイルエラー:配列は既に宣言されています
- コンパイルエラー:配列には割り当てられません
- コンパイルエラー:配列がありません
- 配列で値代入時「型が一致しません」(Split/Array関数)
- 動的配列で「コンパイルエラー:型が一致しません」
- 一次元配列/二次元配列で「インデックスが有効範囲にありません」
- 一次元配列/二次元配列で「定数式が必要です」
コメント