SSブログ

Excel小僧:ワークシートからデータを読み込む [コンピューター]

ワークシートの横1列に並んだn個のセルに格納されたデータを配列変数に格納するVBAのサブプロシージャを作ってみました。

wkst01.jpg
【図1】ワークシート(例)
・一番左のセル(T1)には、データの個数が格納されている。個数を数えるため「=COUNTA(U1:AB1)」の数式が設定されている。
・2個目(U1)からn個目(AB1)のセルに読み込むデータが入力されている。
・一番左のセル(T1)からn個目(AB1)のセルのセル範囲(Range)に名前(例:_namae)が設定されている。

読み込むデータのセル範囲の名前(例:_namae)と、データを格納するVariant型変数を与えたら、Variant型変数にデータの1次元配列を格納して戻すサブプロシージャを作ります。


Public Sub mySRd1RAr2(ByVal RangeName1 As String, _
  ByRef myArray1 As Variant)
  '【機能】Range名で指定されるワークシートの横1行のセルを一次元配列に読み込む
  '【引数】
  ' RangeName1 : Range名
  ' myArray1 : ワークシートの内容を1次元配列にしたもの(戻り値)
  '【変数】
  Dim tmpData1 As Variant ' ワークシートから読み込んだデータ
  '【実行コード】
  tmpData1 = Range(RangeName1) ' ワークシートからデータを読み込む
  Call mySRd1RAr(tmpData1, tmpData1(1, 1), 1, myArray1) ' ワークシートから読み込んだデータを1次元配列に格納
End Sub

Public Sub mySRd1RAr(ByVal tmpWSValue As Variant, _
  ByVal ColumnsCnt1 As Long, _
  ByVal RowNum1 As Long, _
  ByRef myArray1 As Variant)
  '【機能】ワークシートの横1行のセルを一次元配列に読み込む
  '【引数】
  ' tmpWSValue : ワークシートの内容(2次元配列)、1列目:データ個数、2列目以降:データ
  ' ColumnsCnt1 : 読み込む行のデータ個数(列数)
  ' RowNum1 : 読み込む行の行番号
  ' myArray1 : ワークシートの内容を1次元配列にしたもの(戻り値)
  '【変数】
  Dim i As Long ' 整数
  '【実行コード】
  ReDim myArray1(ColumnsCnt1 - 1) ' 配列をデータ個数に合わせて初期化
  For i = 1 To ColumnsCnt1
    myArray1(i - 1) = tmpWSValue(RowNum1, (i + 1)) ' 配列にデータを読み込む
    ' Debug.Print "myArray1(" & (i - 1) & ")=" & myArray1(i - 1)
  Next i
End Sub
タグ:Excel VBA
ヤバイぜ!(13)  コメント(1) 
共通テーマ:パソコン・インターネット

ヤバイぜ! 13

コメント 1

cheese999

やばいぜ、ありがとうございます。
by cheese999 (2023-11-27 18:35) 

コメントを書く

お名前:[必須]
URL:
コメント:
画像認証:
下の画像に表示されている文字(英大文字の「オー」、英小文字の「ユー」、アラビア数字の「ハチ」、アラビア数字の「イチ」、アラビア数字の「ニ」)を入力してください。

Facebook コメント

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。