|
▼ひよっこ さん:
横から失礼します。
SK63 さんのアドバイスどおり変更して実行しましたが、
メッセージでず、またエラーにもならずに終了しました。
念のため、コードを以下に貼り付けます。
bk.Sheets(1).Columns("A").Copy コピー元がxlapp でしたが、特定しています。
また最後に
xlapp.CutCopyMode = False
Set bk = Nothing
xlapp.Quit
Set xlapp = Nothing
を追加しています。
(このあたりは、このプロシジャを抜けた後、別のプロシジャで実行しているとは
思いますが、単体でテストしていますので)
加えて、単体でテストしましたので、変数宣言をこのプロシジャ内で行っています。
Sub test()
Dim OpenFileName As Variant
Dim eflg As Boolean
Dim xlapp As Application
Dim bk As Workbook
'Excelファイル以外を開けないようにする
OpenFileName = Application.GetOpenFilename( _
"Excelファイル(*.xls;*.xlt),*.xls;*.xlt")
'ファイルが見つからない/キャンセルされた場合
If OpenFileName = False Then
MsgBox ("もう一度ファイルの選択をして下さい")
eflg = True
Exit Sub
End If
'対象ファイルを開く際に見えないように開く
Set xlapp = CreateObject("excel.application")
xlapp.Visible = False
Set bk = xlapp.Workbooks.Open(OpenFileName, , ReadOnly:=True)
'A列をコピー
bk.Sheets(1).Columns("A").Copy
'集計ブックを選択し、sheet2にコピーする
ThisWorkbook.Activate
Sheets(2).Select
Range("B1").PasteSpecial Paste:=xlPasteValues
xlapp.CutCopyMode = False
Set bk = Nothing
xlapp.Quit
Set xlapp = Nothing
End Sub
|
|