|
▼にしもり さん:
こんにちは。
[#4871]2行目からインポートしたい
にもありましたが、取り込み先の Excel の作成が他部署ですと
向こうの都合に合わせたフォーマットにされてしまいがちですよね…。
といった愚痴をなくすため(?)に汎用のコードを組んでみました。
Sub 特定行を削除してExcelコピー()
'要参照 Microsoft Excel x.x Object Library
Dim xlsApp As New Excel.Application
Dim xlsWkb As Excel.Workbook
Dim xlsSht As Excel.Worksheet
Dim xName As String
Dim sName As String
Dim Fuyo() As Variant
Dim strDel As String
Dim i As Long
xName = "C:\test.xls"
sName = "Sheet1"
'不要行をセット
Fuyo = Array(1, 2, 4)
For i = 0 To UBound(Fuyo, 1)
strDel = strDel & "," & Fuyo(i) & ":" & Fuyo(i)
Next
strDel = MID(strDel, 2)
xlsApp.Visible = True
Set xlsWkb = xlsApp.Workbooks.Open(xName)
Set xlsSht = xlsWkb.Sheets(sName)
xlsSht.Range(strDel).Delete xlUp
xlsWkb.SaveAs CurrentProject.Path & "\temp.xls"
Set xlsSht = Nothing
xlsWkb.Close False: Set xlsWkb = Nothing
xlsApp.Quit: Set xlsApp = Nothing
End Sub
変数 Fuyo で定義された行を削ったファイルが
mdb と同じフォルダに「temp.xls」という名前で作成されるかと思います。
あとはこのファイルを TransferSpreadsheet メソッドで取り込めますよね。
※ ファイルの重複チェックや存在チェックなどは考慮しておりません。
色々過去ログ等を参考にされてみて下さい。
|
|