[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『参照元(コピー元)ファイルのみ閉じる方法に付きまして』(長州力)
お世話になります。
初歩的なことをお尋ねします。下記のように
(1)ダイアログボックスから、A1に関するファイルを開き
Sheet1のD1からF2までをコピーして、現マクロのD8へ貼り付けます。
(2)次にそのA1に関するファイルを閉じて、次にA2に関するファイルを開き
Sheet1のD1からF2までをコピーして、現マクロのD11へ貼り付けます。
このとき、A1に関するファイルを閉じる、同様にA2に関するファイルを閉じる
場合、Workbooks.Closeですとマクロファイルも閉じられてしまうのですが、
A1、A2のファイルだけ閉じるには、どのようなコードを使ったら
宜しいでしょうか。宜しくお願い致します。
Sub Sample()
'
Dim ws As Worksheet
Set ws = ActiveSheet
Dim OpenFileName As String
MsgBox "A1のファイルを選んでください!" OpenFileName = Application.GetOpenFilename("Microsoft Excelブック,*.xls?") Workbooks.Open OpenFileName Sheets("Sheet1").Range("D1:F2").Copy ws.Range("D8").PasteSpecial Paste:=xlPasteValues
Workbooks.Close 'コピー元のファイルを閉じる(←この部分)
MsgBox "A2のファイルを選んでください!" OpenFileName = Application.GetOpenFilename("Microsoft Excelブック,*.xls?") Workbooks.Open OpenFileName Sheets("Sheet1").Range("D1:F2").Copy ws.Range("D11").PasteSpecial Paste:=xlPasteValues
Workbooks.Close 'コピー元のファイルを閉じる(←この部分) ' ' ActiveWorkbook.Save '本マクロファイルを上書き保存する
End Sub
< 使用 Excel:Excel2016mac、使用 OS:Windows10 >
こんな感じでどうですか?
Sub Sample()
Dim ws As Worksheet Dim OpenFileName As String
Set ws = ActiveSheet
MsgBox "A1のファイルを選んでください!" OpenFileName = Application.GetOpenFilename("Microsoft Excelブック,*.xls?") With Workbooks.Open(OpenFileName) .Sheets("Sheet1").Range("D1:F2").Copy ws.Range("D8").PasteSpecial Paste:=xlPasteValues .Close End With
MsgBox "A2のファイルを選んでください!" OpenFileName = Application.GetOpenFilename("Microsoft Excelブック,*.xls?") With Workbooks.Open(OpenFileName) .Sheets("Sheet1").Range("D1:F2").Copy ws.Range("D11").PasteSpecial Paste:=xlPasteValues .Close End With
ActiveWorkbook.Save '本マクロファイルを上書き保存する
End Sub
(渡辺ひかる) 2019/08/28(水) 10:26
どうも有り難うございました。
.Closeを追加するだけでよかったのですね。
こうした細かいところがまだ分からなくて、とても助かりました。
また宜しくお願い致します。
(長州力) 2019/08/29(木) 10:49
Closeを追加するということだけではないです
Closeを追加するということは、対象のオブジェクトがなければならず、
質問者さんの元のコードでは、それが取得できていません (暗黙的に ActiveWorkbookにはなっていますが)
通常は、開いた時点でオブジェクト変数に代入するか ( Set ws = ActiveSheet は書いてありますよね) 今回のように With を使って、メソッド、プロパティを使えるようにするか です。
その辺をよく理解してください
(渡辺ひかる) 2019/08/29(木) 11:02
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.