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)

TransposeArray1Dto1N|一次元配列を横方向の二次元配列へ変換(転置) | Excel VBA


TransposeArray1Dto1N|一次元配列を横方向の二次元配列へ変換(転移) | Excel VBA

<概要 (転置)>

 TransposeArray1Dto1N は、一次元配列を「1行×N列(1×N)」の横方向に並んだ二次元配列へ変換(転置)するための汎用プロシージャです。


 Excel VBA には WorksheetFunction.Transpose という標準関数がありますが、

この関数は「縦横を入れ替える」ためのものであり、通常の一次元配列(要素数 N)を変換した場合、

・結果は N×1(縦方向)の二次元配列

となります。


 つまり、一次元配列を

・1×N(横方向)(1行に並んだ形)

の配列へ直接変換することは、標準関数ではできません。


 もし一次元配列を横方向の 1×N 配列として扱いたい場合は、独自に変換処理を用意する必要があります。


 TransposeArray1Dto1N は、その用途に特化して設計された汎用プロシージャで、開始要素番号が 1 の一次元配列を、安全に 1×N の二次元配列へ変換します。


 配列の向きを明示的に制御できるため、他の配列処理系の汎用プロシージャと組み合わせた設計においても配列構造を安定して統一できるのが特徴です。


<実行例>

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

  

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


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

 このサンプルでは、DateSerial を用いて2025年1月1日~1月5日の日付を格納した一次元配列(1 To 5)を作成しています。


TransposeArray1Dto1N を実行すると、一次元配列の各要素が左から右へ並び、「1行×5列(1×N)」の二次元配列に変換されます。


即時ウィンドウには、

・行数:1

・列数:5

が表示され、横方向に展開された配列であることが確認できます。


 また、各要素は Date 型のまま保持されており、

値の型変換などが発生していない点も確認できます。


 このように、TransposeArray1Dto1N を使用することで、一次元配列を「横長の配列構造」として明示的に扱えるようになり、配列の向きに依存する処理を安定して実装できます。


<関連コード>

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


<関連記事>

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

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


<コード>


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

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

Softex-Celware

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

  • Facebook
  • Twitter
  • YouTube

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

bottom of page