top of page

​タグ一覧

配列処理(54)

階層化フォーム(33)

ファイル操作(23)

シート・セル操作(11)

コード自動生成(10)

ユーザーフォーム(8)

図形操作(7)

GAS(5)

アニメーション(5)

技術解説(4)

副業(4)

考え方(4)

条件付き書式(4)

イミディエイトウィンドウ(3)

Enum(3)

Googleスプレッドシート(3)

ココナラ(3)

クリップボード(3)

介護(3)

開発効率化(2)

イベントプロシージャ(2)

PDF(2)

フリーランス(2)

リスキリング(2)

Excel(2)

Excel小ネタ(2)

数学(2)

Outlook(2)

文字列操作(2)

小説(2)

HTML(2)

JavaScript(2)

日報(2)

カレンダー(2)

パズル(2)

ステータスバー(1)

コード解析(1)

静的変数(1)

OneDrive(1)

バックアップ(1)

可変長引数配列(1)

ブック処理(1)

スクレイピング(1)

スプレッドシート(1)

coconala(1)

リボン登録マクロ(1)

QRコード(1)

実行予約(1)

給与計算(1)

VBA不使用(1)

リボン(1)

超勉強会(1)

六角形(1)

Excel遊び(1)

ボウリング(1)

時計(1)

スピログラフ(1)

図名描写(1)

連想配列(1)

イベント(1)

溶接ロボット(1)

VBA(1)

脱Excel(1)

Discord(1)

ECサイト(1)

CSV(1)

楽天(1)

保育士(1)

シフト表(1)

CDP(1)

楽天市場(1)

経理(1)

javascript(1)

医療(1)

文書作成(1)

LookerStudio(1)

シフト(1)

セキュリティ(1)

発注書(1)

ショートカット(1)

WebAPI(1)

色操作(1)

罫線(1)

スーパー開発ショートカット(1)

ライブラリ処理(1)

開発事例(1)

二次元配列の指定位置(Row, Col)を左上基準として、別の二次元配列の範囲分だけ値を上書きする汎用プロシージャ Excel VBA

二次元配列の指定位置(Row, Col)を左上基準として、別の二次元配列の範囲分だけ値を上書きする汎用プロシージャ Excel VBA

<概要 (上書き)>

OverwriteArray2D は、二次元配列 Array2D の指定位置(Row, Col)を左上基準として、別の二次元配列 OverwriteArray2D_ の範囲分だけ値を上書きする関数です。


  • 「配列の一部だけ差し替えたい」ときに便利例:テンプレ配列の一部に、計算結果ブロック/ヘッダー/注釈ブロックなどを埋め込む

  • 行列の開始位置が 1 の配列を前提にしており、範囲外やサイズ超過はメッセージで止めてくれるため、事故りにくい作りです。


仕様(ポイント)

  • Row, Col は 上書きブロックの左上セル(配列要素)を指定

  • 上書きは OverwriteArray2D_ のサイズ(N×M)分だけ行い、Array2D の同範囲を置換

  • 次の条件を満たさない場合は停止(MsgBox + Stop)

    • どちらも二次元配列である

    • どちらも開始要素番号が 1

    • Row/Col が Array2D の範囲内

    • 上書き範囲が Array2D の範囲を超えない


<実行例>

 実行例のサンプルコードは次の通りです

 

 実行結果のイミディエイトウィンドウは次のようになります。


イミディエイトウィンドウの実行結果

 今回のサンプルでは、5行×6列の土台配列 Base2D のうち、Row=3 / Col=2 を左上とする範囲を、2行×3列の配列 Patch2D で上書きしました。


 出力結果を見ると、指定した位置を起点にしたブロックだけが置き換わり、それ以外の要素は元の値のまま維持されていることが確認できます。


 このように OverwriteArray2D を使うと、二次元配列の一部分だけを安全に差し替える処理を、ループ記述なしでシンプルに表現できます。


<関連コード>

 今回の汎用プロシージャは、下記の別で紹介している汎用プロシージャを使用しています。


<関連記事>

 今回紹介しているような汎用プロシージャを部品として一元管理する方法は別記事で紹介していますので、是非このノウハウも参考にしてみてください。

 コーディングを効率化する上でどんどん増やしていった汎用プロシージャ(部品)をいくら増やしても簡単に流用ができるような仕組みの構築が可能になります。


<コード>


コメント

5つ星のうち0と評価されています。
まだ評価がありません

評価を追加
Softex-Celware

​インボイス登録番号:T5810983887134

  • Facebook
  • Twitter
  • YouTube

©2023 softex-celware。Wix.com で作成されました。

bottom of page