VBA

配列(一次元/二次元)

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
VBATips

次の○曜日を取得する【ExcelVBA】

上記関数を使用する事で、次の○曜日を取得可能です。 使い方 上記をお好きなモジュール内にコピペしてください。 実際に使用する時は以下のような形で使用してください。 参考記事 日付から曜日を取得する【W...
0
VBATips

「Exit If」は存在しない【ExcelVBA】

If文を途中で抜ける「Exit If」は仕様上、存在しない Exitステートメントは以下が存在しますが、Exit Ifはありません。 Exit Do Exit For Exit Function Ex...
0
Selenium(Edge/Chrome)

Edge/Chromeで「JS(JavaScript)のonclickをクリックする」【Selenium】

前回id要素がなくても、for eachで要素をチェックしてクリックする動作をお伝えしました。 上記で約半数のWebページは対応ができます。 では、対応が出来ない残りの半数は何でしょうか?JavaSc...
0
配列(一次元/二次元)

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

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

「ブックを閉じたままデータ取得する(数式で取得)」をパーツ化する【ExcelVBA】

上記関数を使用する事で、 ・データ取得先のブックを閉じたままデータを取得可能です。 ・ブックを開かないので高速でデータを取得できます。 使い方 上記をお好きなモジュール内にコピペしてください。 実際に...
0
VBATips

「ファイルを選択して開く」をパーツ化する【ExcelVBA】

使い方 上記をコピペでお好きなモジュール内に記載してください。 注意点 CSVファイルで、文字列で開く場合はこちらの記事を参照。 TAB区切りテキストを文字列形式で開く場合はこちらの記事を参照。 参考...
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
VBATips

他ブック他シートのUsedRangeの「最終行」「最終列」取得処理をパーツ化する【ExcelVBA】

上記は他ブックや他シートの使用しているセル(UsedRange)を指定して最終行や最終列を取得します。 使い方 上記をお好きなモジュール内にコピペしてください。 実際に使用する時は以下のような形で使用...
0
配列(一次元/二次元)

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

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

特定文字以降を削除する処理をパーツ化する【Split関数応用】【ExcelVBA】

特定文字以降の文字列を削除したい フォルダパスとファイル名を分けたいやファイル名と拡張子を分けると同様に、 特定文字以降の文字を削除したい場合があります。パーツ化することで簡単にコピペで使えます。 特...
0