|
こんにちは。かみちゃん です。
>開いたファイルから内容をコピーし、別のワークブックにペーストした後
>開いたファイルを閉じたいのですが、エラーが出てしまいます。
とりあえず、以下のような感じでできると思います。
★印の行を追加修正しています。
Sub test()
fileToOpen = Application.GetOpenFilename("CSV形式 (*.csv), *.csv")
If fileToOpen <> False Then
MsgBox "選択されたファイル : " & fileToOpen
Workbooks.Open Filename:=fileToOpen
OpenWorkbookName = ActiveWorkbook.Name '★
Columns("B:B").Select
Selection.Copy
Workbooks("Book1").Activate '★
Range("C1").Select
ActiveSheet.Paste
Application.CutCopyMode = False '★
Workbooks(OpenWorkbookName).Activate '★ 変数fileToOpenにはフルパスが格納されている
ActiveWindow.Close
End If
End Sub
ただ、Book1は、常に開いている状態なのでしょうか?
CSVファイルを開いたら、新規ブックの追加をして、そのブックに貼り付けて
終わったら、CSVファイルは閉じるという方法にしてはいかがでしょうか?
そのためには、以下のような感じになります。
Sub test0()
Dim fileToOpen As String
Dim wb1 As Workbook, wb2 As Workbook
Dim ws As Worksheet
fileToOpen = Application.GetOpenFilename("CSV形式 (*.csv), *.csv")
If fileToOpen <> "False" Then
MsgBox "選択されたファイル : " & fileToOpen
Set wb1 = Workbooks.Open(fileToOpen)
Set ws = ActiveSheet
Set wb2 = Workbooks.Add
ws.Columns("B:B").Copy Range("C1")
wb1.Close
Set wb1 = Nothing
Set ws = Nothing
Set wb2 = Nothing
End If
End Sub
|
|