可能でしょうか?
そうではありません。 .Copy
は新しいシートを有効にします。私はここにWorksheets
コレクションを使用してい
With ThisWorkbook.Worksheets("Template")
.Copy after:=ThisWorkbook.Workheets(ThisWorkbook.Worksheets.Count)
.Activate
End With
お知らせ:しかし、何も(再)後に元のシートをアクティブ化からあなたを停止しません。 Sheets
コレクションには、通常、探しているものではないChart
シートなどのワークシート以外のオブジェクトを含めることができます。Worksheest
コレクションには実際のWorksheet
オブジェクトのみが含まれています。
ThisWorkbook.Worksheets
コレクションのテンプレートシートを見つける必要がなくなり、必要以上にコードが脆弱になることに注意してください。
各Excelオブジェクト(実際にVBAオブジェクトが)あなたがペイン(プレスF4プロパティで編集できること(ワークシートは次のようにラベル付けされているものを指しName
財産の上に)(Name)
性質を持っていますエディタ) - その名前は合法的なVBA識別子でなければなりません。そして、VBAがやっていることはきれいです。その名前でグローバルスコープのオブジェクト変数を宣言していますので、 "Template"シートの名前をTemplateSheet
とすれば:
With TemplateSheet
.Copy after:=ThisWorkbook.Workheets(ThisWorkbook.Worksheets.Count)
.Activate
End With
また、すべての「静的な」ワークシート(つまりshee tsはコードによって生成されません)。 Name
プロパティ(タブラベル)でワークシートを参照すると、ユーザーがタブの名前を変更するとすぐにコードの実行が失敗します。対応するグローバルスコープ識別子を参照することによって、ワークシート・タブに任意のラベルを付けることができます。コードはまったく気にしません。
これらの情報をお寄せいただきありがとうございます。私のケースでは、Activateを使用してプロパティ名を使用します。 – sexyyoda