ここでの目的は、ワークシートオブジェクトを設定し、そのワークシートを新しいブックに移動し、そのワークシートオブジェクトを引き続き使用することです。ただし、そのワークシートを移動すると、それ以前に関連付けられたワークシート・オブジェクトが失われているように見えます。テストへExcel VBA:ワークシートオブジェクトの関連付けを維持しながらシートを新しいブックに移動
:
は、私たちがシート1という名前のその中の1枚で、各Book1.xlsbとBook2.xlsbという名前の同じフォルダ内の2つのExcelブックを持っているとしましょう。 Book1を開くと、下のサブフォームに入り、シートを別のワークシートオブジェクトを使って移動しようとします。
すべてが「動作」しますが、ワークシートオブジェクトはプロセスで失われ、再度使用しようとするとエラーがスローされます。 ワークシートを新しいブックに移動し、後で参照できるようにワークシートオブジェクトの関連付けを失うことはありませんか?
Option Explicit
Sub test()
Dim wb1 As Workbook
Dim wb2 As Workbook
Dim ws As Worksheet
Set wb1 = ThisWorkbook
Set wb2 = Workbooks.Open("Book2.xlsb")
Set ws = wb2.Sheets(1)
ws.Name = "Sheet2" 'name changed to avoid conflict with the one already there
ws.Move wb1.Sheets(1)
MsgBox ws.Name 'this line throws an error, indicating that ws association has been lost
End Sub
編集: これが不可能な場合は、どのように我々は確実に我々だけで移動したものと、そのワークシートオブジェクトを再設定することができますか?
いいえ、新しいワークブックにある場合は、再作成する必要があります。ただし、シートの名前を知っていて、WorkBookオブジェクト参照があるので、簡単です。 – braX