名前付きデータ範囲を読み込む

スポンサーリンク
スポンサーリンク

1行目もデータとして取り込む

Sub 先頭行をデータとして取り込む()
Dim myCon As New ADODB.Connection, myRS As New ADODB.Recordset, FileName As String
Dim myRS2 As New ADODB.Recordset
FileName = ThisWorkbook.Path & "\xls\4-7フィールド見出しチェック用"

'接続文字列
With myCon
  .Provider = "Microsoft.Jet.OLEDB.4.0;"
  .Properties("Extended Properties") = "Excel 8.0;HDR=NO"
  .Open FileName
End With

'「数値データあり」シートの内容を読み込む
myRS.Open "[数値データあり$]", myCon

'A1番地を基点にデータ転記
Range("A1").CopyFromRecordset myRS

'「文字列データのみ列」シートの内容を読み込む
myRS2.Open "[文字列データのみ$]", myCon

'G1番地を基点にデータ転記
Range("G1").CopyFromRecordset myRS2

myRS.Close: Set myRS = Nothing
myRS2.Close: Set myRS2 = Nothing
myCon.Close: Set myCon = Nothing

End Sub

「数値データあり」シート

「文字列データのみ」シート

実行結果

Excelブックを読み込む場合、1行目は「フィールド見出し」と判断され、転記されるデータには含まれない。
1行目からデータとして読み込ませるには、「Extended Properties」に指定する値に「HDR=NO」を付け加える。

ただし、フィールドデータが文字列型以外の場合には、空欄として転記される。
(そのフィールドのデータ型として整合性がとれないため。)
「HDR=NO」の設定は、あくまでも「1行目もデータとして扱いたい場合」だけの設定である。

スポンサーリンク
シェアする
スポンサーリンク
あんとんさんち 覚え書き