プロが教えるわが家の防犯対策術!

エクセル1シートのみを移動し、開いたシートは閉じたいのですが、
ネットで検索したものが、全シートの移動のみで、
1シートを移動し、閉じたいのです。
wbTo.Worksheets.Move After:=wbFrm.Worksheets(wbFrm.Worksheets.Count)

wbTo.Worksheets(1).Move After:=wbFrm.Worksheets(wbFrm.Worksheets.Count)
ここだけ直したら、1シートの移動は出来たのですが、
不要なブックの閉じ方が分かりません。

どなたかわかる方いらっしゃいましたら、コードを教えてください。
よろしくお願いします。

Public Sub 複数エクセル1シート開いたブックへ移動()
Dim arrFileName As Variant 'ダイアログで選択した複数のブック名を配列で取得する
'GetOpenFilenameメソッドで、MultiSelect:=Trueとすると、ブックを複数選択できる。
arrFileName = Application.GetOpenFilename("Excelブック,*.xls?", MultiSelect:=True)

'ファイルを選択しなかった場合、処理を終了する
If TypeName(arrFileName) = "Boolean" Then: Exit Sub

Dim v As Variant '配列の各要素を格納する変数
Dim Flag As Boolean '最初に開いたブックか判定する変数
Dim wbTo As Workbook '2回目以降に開いたブックの参照用変数
Dim wbFrm As Workbook '最初に開いたブックの参照用変数

'GetOpenFilenameメソッドで取得した各ブックのフルパスの数だけループ
For Each v In arrFileName
Workbooks.Open FileName:=v 'Excelをひらく
If Flag Then '最初に開いたブックは処理しない
Set wbTo = ActiveWorkbook
'Moveメソッドで、2回目以降に開いたブックの1シートを、最初に開いたブックのシート末尾に移動する
wbTo.Worksheets(1).Move After:=wbFrm.Worksheets(wbFrm.Worksheets.Count)
Else
'最初に開いたブックの参照を割り当てる
Set wbFrm = ActiveWorkbook
End If
Flag = True
Next v
End Sub

A 回答 (1件)

こんにちは



>不要なブックの閉じ方が分かりません。
「不要なブック」というのは、コピー元になっているブックという解釈でよいのでしょうか?

 Workbook.Close
で、ブックを閉じることができます。
(ご提示のコードの場合なら、ブックは wbTo です)

ただし、変更しているので、上記のままでは、確認のダイアログが表示されます。
いちいち表示されては面倒でしょうから、移動したシートを残したままにしたいなら
 wbTo.Close False
移動したシートは、無くして保存するのなら
 wbTo.Close True
とすることで、実現できると思います。
    • good
    • 2
この回答へのお礼

実現できました。ありがとうございます!!!!

お礼日時:2022/06/20 12:53

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!