配列

配列(一次元/二次元)

静的配列/動的配列/Variant型に配列代入の違い【ExcelVBA】

VBAで高速処理に欠かせない配列処理ExcelVBAマクロは動作が遅いと言われがちです。それは大きな間違いです。大体そういう方は、大量のデータをワークシート内のセルで、検索、代入、計算しており、その処...
0
配列(一次元/二次元)

RedimPreserveより事前に領域確保したほうが速度が出る【ExcelVBA】

マクロ開発時、二次元配列の要素数が読めない場合、RedimPreserveで指定や要素の入れ直しで二次元配列を最小の要素数→任意の行数の配列で処理することは、処理自体奇麗と考えます。処理は奇麗でも、件...
0
配列(一次元/二次元)

配列の指定した範囲を抜き出す(インデックス番号でFromTo)【ExcelVBA】

使い方上記をコピペでお好きなモジュール内に記載してください。注意点 元のインデックス番号は保持したまま処理をします。※必要あれば要素数計算してRedimPreserveするコードです。関連記事 一次元...
0
配列(一次元/二次元)

RedimPreserveはフィルタの動きは出来ずインデックス番号が変わるだけ【ExcelVBA】

RedimPreserveは要素を保持したまま要素数を増やすことが多いと思います。開発案件で、配列arr(1 to 5)から、arr(3)~arr(5)を抜き出したい案件がありました。配列をForで回...
0
配列(一次元/二次元)

一度Dim宣言すると配列の添え字の始まりは変更できない(けどVariant型は関係ない)【ExcelVBA】

当方のオンラインマクロ受講者に聞かれて、少し調べた案件です。マクロを主に仕事としていても、普段使わないものはわかっていないものがあり、日々勉強だと感じました。----Redim Preservで。実行...
0
配列(一次元/二次元)

一次元配列を降順並び替え(ソート)する【ExcelVBA】

使い方上記をコピペでお好きなモジュール内に記載してください。注意点 一次元配列の中身を昇順並び替え(ソート)する 一次元配列を降順並び替え(ソート)する(今回はこれ) 一次元配列の並びを反転させる(降...
0
配列(一次元/二次元)

(Dim arr as Variant)配列が初期化されているのかどうか調べる【isEmpty】【ExcelVBA】

配列が初期状態かどうか調べる厳密には配列が初期化されているのかどうかではなく、配列として使用を考えているVariantが初期化されているのかどうか、です。まとめ 配列をEraseで初期化する (Dim...
0
配列(一次元/二次元)

配列をRedimPreserveで要素数を増やすor減らす【Redim Preserveステートメント】【ExcelVBA】

Redim Preserveで要素数を増やすor減らすまとめ Eraseステートメントは初期化 Redimは再初期化・再定義(要素は全て消える)。 Redim Preserveは再定義(要素は残したま...
0
配列(一次元/二次元)

配列をRedimで再初期化する【Redimステートメント】【ExcelVBA】

Redimで配列を再初期化するまとめ Eraseステートメントは初期化 Redimは再初期化・再定義(要素は全て消える)。 Redim Preserveは再定義(要素は残したまま)※要素数を増やす場合...
0
配列(一次元/二次元)

配列の値を変更・更新する(1次元/2次元)

VBAで高速処理に欠かせない配列処理ExcelVBAマクロは動作が遅いと言われがちです。それは大きな間違いです。大体そういう方は、大量のデータをワークシート内のセルで、検索、代入、計算しており、その処...
0
配列(一次元/二次元)

配列の要素に値を入れる【For文】

VBAで高速処理に欠かせない配列処理ExcelVBAマクロは動作が遅いと言われがちです。それは大きな間違いです。大体そういう方は、大量のデータをワークシート内のセルで、検索、代入、計算しており、その処...
0
配列(一次元/二次元)

配列の値を取得する(1次元/2次元)【For文で取得】

VBAで高速処理に欠かせない配列処理ExcelVBAマクロは動作が遅いと言われがちです。それは大きな間違いです。大体そういう方は、大量のデータをワークシート内のセルで、検索、代入、計算しており、その処...
0
配列(一次元/二次元)

配列の値を取得する(1次元/2次元)【ForEach文で取得】

VBAで高速処理に欠かせない配列処理ExcelVBAマクロは動作が遅いと言われがちです。それは大きな間違いです。大体そういう方は、大量のデータをワークシート内のセルで、検索、代入、計算しており、その処...
0
配列(一次元/二次元)

二次元配列で条件に該当した行を 別の配列にコピーする【ExcelVBA】

二次元配列内の要素で一致した行だけ別の配列にコピーしたい(抜き出ししたい)場合があります。単純にFor~Loopで処理し、別の配列にコピーします。条件に該当した行を抜き出しするサンプルコードサンプルコ...
0
配列(Dictionary)

Dictionaryにキーが存在するかチェックする【Existsメソッド】【ExcelVBA】

構文object.Exists ( key ) as Booleankey    ・・・ 指定した内容がDictionaryのキーに存在してるかチェックする。【必須】 戻り値・・・True→存在する ...
0
配列(Dictionary)

Dictionaryにキーと要素を追加する【Addメソッド】【ExcelVBA】

構文object.Add key, itemkey    ・・・追加する引数 item と紐づける引数 key を指定。【必須】item   ・・・追加する引数 key と紐づける引数 item を指...
0
配列(一次元/二次元)

一次元配列の要素の合計値を求める【ExcelVBA】

一次元配列の要素の合計値を求めたい一次元配列の要素を全て足したい(ExcelのSum関数の動き)ケースがあります。VBAには全ての要素を足す専用の関数は用意されていないので、Excel関数(Sum関数...
0
配列(一次元/二次元)

二次元配列をランダムに並び替える処理をパーツ化する【Rnd関数】【ExcelVBA】

二次元配列をランダムに並び替えたいランダムに並び替えるのに、特に難しい処理をしているわけではありません。下記手順で並び替え可能です。①二次元配列の列を一つ増やす。②Rnd関数でランダムな値(乱数)を入...
2
配列(一次元/二次元)

一次元配列で〇番目の指定要素を削除する【ExcelVBA】

配列内の指定した要素を、削除したい場合があります。■削除例重複したデータを削除したい場合はDictionaryステートメントで削除が可能です。配列内で指定した文言の要素を抜き出したい場合はFor~Lo...
0
配列(一次元/二次元)

配列で条件に「完全一致」した要素を取得する【ExcelVBA】

配列内の要素を、完全一致で検索したい場合があります。Dictionaryの連想配列へ格納して検索した方が高速ですが、コード内の値の重複が許可されません。ここでは単純にFor~Loopで処理する形を案内...
0