二次元配列の指定した範囲(Rs~Re / Cs~Ce)を、同じ値でまとめて上書きする汎用プロシージャ Excel VBA
- yuji fukami
- 3 時間前
- 読了時間: 2分

<概要 (上書き)>
OverwriteArray2DSameValue は、二次元配列の指定した範囲(Rs~Re / Cs~Ce)を、同じ値でまとめて上書きするための関数です。
たとえば、
「一部の範囲だけ 0 で埋めたい」
「特定エリアを 'X' に置換したい」
「マスク処理として一定値を流し込みたい」
といったケースで、ワークシートを介さず配列上で高速に処理できます。
開始行/列(Rs, Cs)を指定し、終了行/列(Re, Ce)は省略すると 配列の最大行/最大列まで自動的に置換されます。
<実行例>
実行例のサンプルコードは次の通りです
実行結果のイミディエイトウィンドウは次のようになります。

例1では、Rs=2~Re=3 かつ Cs=2~Ce=4 の範囲だけが "X" に置き換わり、指定範囲外は元の値のまま残ります。
例2では、Re と Ce を省略しているため、Rs=3, Cs=4 を起点に 右下方向(配列の最大行・最大列まで)がまとめて 0 に置き換わります。
<関連コード>
今回の汎用プロシージャは、下記の別で紹介している汎用プロシージャを使用しています。
・IsArray2D → https://www.softex-celware.com/post/isarray1d
・IsArray2DStart1 → https://www.softex-celware.com/post/isarray1d
<関連記事>
今回紹介しているような汎用プロシージャを部品として一元管理する方法は別記事で紹介していますので、是非このノウハウも参考にしてみてください。
コーディングを効率化する上でどんどん増やしていった汎用プロシージャ(部品)をいくら増やしても簡単に流用ができるような仕組みの構築が可能になります。


コメント