[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『別ファイルからシートコピーの上書きをするには』(タカ)
別のファイルから同じ名前のシートをコピーしてきた場合、シート名(2)というファイルが自動的に作成され、上書きがされません。
これを上書きする方法はありますでしょうか?
元シートを全選択して、コピー先の同名シートへ貼り付ければできることなのですが、仮にシート枚数が多かったりした場合、何か別のやり方で出来る方法はありますでしょうか?
皆様のお知恵をお借りしたいと思います。
何卒宜しくお願い致します。
< 使用 Excel:Microsoft365、使用 OS:Windows10 >
いちいちシート名の重複をチェックするのが面倒ということであれば、マクロで シート名重複チェックをすればいいと思います。もちろんシートのコピーもマクロ でできます。 (MK) 2023/12/16(土) 15:55:15
やってることは少し違いますが、参考になりそうな過去ログがありました。
[[20111030084857]] 『シート名同じ場合上書きする方法』(みみ)
これはエラー処理を使う方法ですが、前もってコピー先ブックのシート名一覧 を取得しておき重複チェックをするという方法もあります。 (MK) 2023/12/16(土) 16:02:19
Sub test()
Dim wbpathA As String Dim wbpathB As String Dim wbA As Workbook Dim wbB As Workbook Dim ws As Worksheet Dim dic As Object
Set dic = CreateObject("Scripting.Dictionary")
wbpathA = "コピー元のブックのパス" wbpathB = "コピー先のブックのパス"
'コピー元ブックを開く Set wbA = Workbooks.Open(wbpathA)
'コピー元ブックのシート名をループ処理で取得 For Each ws In wbA.Worksheets userdic.Add ws.Name, ws.Name Next ws
'コピー先ブックを開く Set wbB = Workbooks.Open(wbpathB)
'コピー先ブックのシートをループ処理 For Each ws In wbB.Worksheets If dic.exists(ws.Name) Then シートを削除するコードを記述 'シート名が重複していたら 'シートをコピーする記述 Next ws
wbA.Close
'wbbを保存するなりなんなりする
dic.RemoveAll
Set dic = Nothing Set wbA = Nothing Set wbB = Nothing End Sub (MK) 2023/12/16(土) 16:20:50
>userdic.Add ws.Name, ws.Name
↓へ修正願います。
dic.Add ws.Name, ws.Name (MK) 2023/12/16(土) 16:24:24
> 'コピー元ブックのシート名をループ処理で取得
dicに格納するのはコピー先ブックのシート一覧でした。 私のコードは逆になってました。
> 'コピー先ブックのシートをループ処理
これもコピー元ブックのシートをループ処理、としなければなりません。 (MK) 2023/12/16(土) 17:05:19
Sub test2()
Dim wbpathA As String Dim wbpathB As String Dim wbA As Workbook Dim wbB As Workbook Dim ws As Worksheet Dim dic As Object
Set dic = CreateObject("Scripting.Dictionary")
wbpathA = "コピー元のブックのパス" wbpathB = "コピー先のブックのパス"
'コピー先ブックを開く Set wbB = Workbooks.Open(wbpathB)
'コピー先ブックのシート名をループ処理で取得 For Each ws In wbB.Worksheets dic.Add ws.Name, ws.Name Next ws
'コピー元ブックを開く Set wbA = Workbooks.Open(wbpathA)
'コピー元ブックのシートをループ処理 For Each ws In wbA.Worksheets If dic.exists(ws.Name) Then コピー先ブックのシートを削除するコードを記述 'シート名が重複していたら 'シートをコピーする記述 Next ws
wbA.Close 'コピー元ブックを閉じる
'wbbを保存するなりなんなりする
dic.RemoveAll Set dic = Nothing Set wbA = Nothing Set wbB = Nothing End Sub (MK) 2023/12/16(土) 17:25:59
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.