top of page

​タグ一覧

配列処理(73)

階層化フォーム(33)

ファイル操作(28)

開発事例(22)

シート・セル操作(18)

図形操作(13)

コード自動生成(10)

ユーザーフォーム(9)

文字列操作(8)

設計思想(7)

開発効率化(6)

数学(6)

GAS(5)

アニメーション(5)

技術解説(4)

講座実施報告(5)

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

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

副業(4)

クリップボード(4)

条件付き書式(4)

その他(4)

ココナラ(3)

小説(3)

HTML(3)

JavaScript(3)

OneDrive(2)

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

Enum(2)

PDF(2)

フリーランス(2)

リスキリング(2)

Outlook(2)

介護(2)

Discord(2)

シフト表(2)

LookerStudio(2)

日報(2)

カレンダー(2)

罫線(2)

パズル(2)

小ネタ(2)

コード解説(2)

クラスモジュール(2)

ステータスバー(1)

コード解析(1)

バックアップ(1)

可変長引数配列(1)

ブック処理(1)

スクレイピング(1)

スプレッドシート(1)

coconala(1)

リボン登録マクロ(1)

QRコード(1)

実行予約(1)

給与計算(1)

VBA不使用(1)

リボン(1)

超勉強会(1)

スピログラフ(1)

図名描写(1)

連想配列(1)

溶接ロボット(1)

保育士(1)

楽天市場(1)

経理(1)

医療(1)

文書作成(1)

発注書(1)

ショートカット(1)

WebAPI(1)

色操作(1)

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

ライブラリ処理(1)

放課後等デイサービス(1)

児童福祉支援(1)

学校(1)

UI(1)

CAD(1)

カーソル操作(1)

OutputCellArray2D|二次元配列をセルへ一括出力(配列一括出力) | Excel VBA

更新日:1月4日

OutputCellArray2D|二次元配列をセルへ一括出力(配列一括出力) | Excel VBA

<概要 (VBA 配列 セル 出力)

 OutputCellArray2Dは、Excel VBAで扱う二次元配列を、指定したセルを起点として一括でワークシートへ出力(配列一括出力)するための汎用プロシージャです。Range.Valueへの直接代入を用いることで、高速かつシンプルに配列内容をセルへ反映できます(VBA 配列 セル 出力)。


 二次元配列のセルへの一括出力は、配列の中身をセル上への出力を高速化するためになくてはならない技術です。

 基本構文は次のようになっています。

 ただ、このセル範囲において必要な情報となってくるのは、出力する基準の左上のセルだけで、出力するセル範囲は二次元配列の行数列数から自動的に決まってきます。

 このことを考慮した場合に、二次元配列の一括出力において必要な情報は「出力するに次元配列」「左上の基準セル」の2つになります。

 

 また部品として汎用プロシージャとして構築する場合は、出力するセル範囲に別々の情報を何度も出力するという風になった場合は、それぞれ出力する二次元配列の大きさよっては一つ前に出力した二次元配列の情報が一部残ったりする可能性があるので、事前に出力する範囲の初期化等の設定も必要になってきます。この初期化処理は紹介する汎用プロシージャーでの第三引数「Clear」で設定できるようになっています。


 ちなみに出力対象とする二次元配列は、必ず要素数は1が開始となるように限定しております。この理由として、もし1以外で0開始の二次元配列も対応しようとした場合に汎用プロシージャの中の行動が複雑化することと、現実的に0開始の二次元配列を扱うことは滅多にないってことを考慮しております。


<実行例>

 実行例のコードは次のようになっております。

 出力する二次元配列は行数列数が3x4の配列を例にしております。

 出力する基準セルはB3セルとしています。

実行前
実行前

 実際に実行すると、次の画像のように二次元配列がセル上に出力されているのがわかります。

実行後
実行後

 

 ちなみに、一般的なExcel VBAの教材では一つ一つのセルに一つの値を一つずつ入力するような教え方が多いですが、実務上ではそのようなやり方やると非常に処理が遅い実装になり、使用する側としてもストレスがたまりやすいものになってしまいます。私が教える場合はこのような処理は「ご飯の米粒を1つずつ食べるような行為」と揶揄しております。子育てを経験すると実感しやすい表現です。

 実務上でExcel VBを実装する場合は、できるだけ出力する内容を配列に一つに貯めてから一括で出力するようにすると、より処理の早いストレスの溜まりにくいツールが出来上がります。


<関連コード>

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


<関連記事>

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

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


<コード>



Excel VBAによる業務自動化・ツール開発をご検討の方へ

​"脱Excel"の前に、現状のExcelの潜在能力を120%発揮してみませんか?

Softex-Celware

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

  • Facebook
  • Twitter
  • YouTube

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

bottom of page