配列の一部(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

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です