Excel ブックのデータを抽出し、転記する

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

Excel ブックのデータを抽出し、転記する

Sub 抽出1()
Dim myCon As New ADODB.Connection, myRS As New ADODB.Recordset, FileName As String
Dim myCriArray(2) As String, i As Integer

FileName = ThisWorkbook.Path & "\xls\DataBook.xls"
myCon.Open "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=Excel 8.0;" & _
           "Data Source=" & FileName

'抽出条件
myCriArray(0) = "担当者 ='星野'"
myCriArray(1) = "受注金額 >= 5000"
myCriArray(2) = "受注日 <= #2004/1/31#"

'Recordset オブジェクトに「伝票一覧」シートの内容を読み込む
myRS.Open "[伝票一覧$]", myCon

For i = 0 To UBound(myCriArray)
  'Filter プロパティを使用して抽出
  myRS.Filter = myCriArray(i)
  'シートごとに抽出内容を転記
  Worksheets(i + 1).Range("A1").CopyFromRecordset myRS
Next

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

End Sub

実行結果
◆Sheet1

◆Sheet2

◆Sheet3

D列は「Sheet1」以外、書式設定がコピーされないため、シリアル値で表示される。
(この図は書式設定を日付に変更したものである。)
なぜ「Sheet1」の書式が日付に変更されるのかは分からない。

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