一次元配列を基準セルから縦方向に一括出力する
- yuji fukami
- 2024年12月28日
- 読了時間: 2分
<概要>
今回は一次元配列を基準セルから縦方向に一括出力する汎用プロシージャの紹介です。
二次元配列の一括出力は以前の記事で紹介しましたが、一次元配列も同様にセルへの一括出力を行ないたい時があります。
また、一次元配列の場合は縦方向、また横方向に出力するというパターンが別れてきます。今回紹介するのは縦方向への出力ですが、横方向への出力も別の記事で紹介しております。
二次元配列の一括出力でも紹介した汎用プロシージャ「OutputCellArray2D」と同様に今回の場合も出力する一次元配列「Array1D」、基準セル「Cell」および、基準出力範囲の初期化を行うかどうか「Clear」を引数で指定できるようにしております。
少し技術的な解説致しますと、二次元配列の一括出力でも紹介した配列の一括出力の基本構文ですが、セル範囲への配列の出力は二次元配列しか対応しておりません。
この理由で、紹介する汎用プロシージャ「OutputCellArray1DVertical」では引数として与える一次元配列を一度、二次元配列に変換するような処理を行っています。これを具体的に転移と呼ぶのですが、この点、処理には専用の汎用プロシージャ「TransposeArray1DtoN1」を利用しています。通常このような処理はWorksheetFunction.Transpose関数を利用すればよいのですが、この関数は与えた要素の変数の型を勝手に変えてしまったり、与える配列の要素数にも制限があるなどという重大な欠陥がありますので、極力使わないようにしています。
ちなみにTranspose関数にはApplication.Transpose関数もありますが、結果は同様です。
<実行例>
実行例のサンプルコードは下記の通りです。
B3セルを基準として、要素数が5の一次元配列を一括で出力します。

実行結果は次のとおりになっております。

<関連記事>
今回紹介しているような汎用プロシージャを部品として一元管理する方法は別記事で紹介していますので、是非このノウハウも参考にしてみてください。
コーディングを効率化する上でどんどん増やしていった汎用プロシージャ(部品)をいくら増やしても簡単に流用ができるような仕組みの構築が可能になります。



コメント