programing おバカの記録

[ChatGPT to VBA] シート名とヘッダー名を指定してその列の二行目から最終行までを二次元配列に代入して返し、値が数値の8桁の場合は11桁の文字列に変換して代入するコード。

'VBAでシート名とヘッダー名を引数に指定してその列の二行目から最終行までを一次元配列に代入して返すサンプルコードです。
'以下の例では、引数で指定したシート名の中から、ヘッダー名が一致する列の二行目から最終行までの値を配列に代入して返しています。
Function GetColumnValues(sheetName As String, headerName As String) As Variant
    Dim lastRow As Long
    Dim columnData As Variant
    Dim headerColumn As Range
    
    'シート名を指定してシートオブジェクトを取得する
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets(sheetName)
    
    'ヘッダー名が格納されている列を取得する
    Set headerColumn = ws.Rows(1).Find(headerName, LookIn:=xlValues, LookAt:=xlWhole)
    
    'ヘッダーが見つからなかった場合はエラーを返す
    If headerColumn Is Nothing Then
        Err.Raise 1001, , "ヘッダー名が見つかりませんでした。"
    End If
    
    '最終行を取得する
    lastRow = ws.Cells(ws.Rows.Count, headerColumn.Column).End(xlUp).row
    
    '配列に列の値を代入する
    columnData = ws.Range(headerColumn.Offset(1), ws.Cells(lastRow, headerColumn.Column)).Value
    
    '配列を返す
    GetColumnValues = columnData
End Function
Back To Top