配列の一部(1行・1列)のデータを抜き出す【ExcelVBA】
特徴 Index関数の行番号しか指定しない場合行全体が返される為、行全体を返してそれを別の配列に入れる
列を抜きたい場合 TRANSPOSE関数で行・列を入れ替えた後、行番号で行全体を抜き出す
項目の文字列で番号を取得する為Match関数で指定した文字を探す形で実践
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
実際に使用したサンプルコード
Option Explicit
Public Sub Sample()
'セルから入れる為の配列
Dim 配列() As Variant
'行番号を取得用の変数
Dim 行番号 As Integer
'抽出したデータを入れる配列
Dim 抽出() As Variant
'セルの値を配列に入れる
配列 = Range("D8", "G12").Value
'1行目から指定した項目を探す処理
行番号 = WorksheetFunction.Match("日付", WorksheetFunction.Index(配列, 1), 0)
'行・列を入れ替える
配列 = WorksheetFunction.Transpose(配列)
'行を指定した配列に入れる
抽出 = WorksheetFunction.Index(配列, 行番号)
'行・列を元に戻す
抽出 = WorksheetFunction.Transpose(抽出)
'B8セルの箇所に入れる
Range("B8").Resize(UBound(抽出), 1).Value = 抽出
End Sub