Sheets.SelectVBA for Excel のとの違いは何Sheets.Activateですか?
3 に答える
違いは柔軟性にあります。
Activate指定されたシートをアクティブなシートにし、単一のシートにのみ適用できます
Selectオプションで、現在選択されているシートを拡張して、指定したシートを含めることができます。
Worksheets("Sheet2").Select Replace:=False
また、シートの配列を選択することもできます
Sheets(Array("Sheet3", "Sheet2")).Select
最小限の形式SelectでActivate、同じことを行います。
たとえば、現在 1 つのシートのみが選択されているSheet3場合 (たとえば、 )、または複数のシートが選択されているが、sayを除外Sheet2している場合Worksheets("Sheet2").Select、Worksheets("Sheet2").Activate両方ともSheet2、唯一の選択されたアクティブなシートを作成します。
一方、 と の両方Sheet2がSheet3選択され、Sheet2がアクティブなシートである場合、Worksheets("Sheet3").Activate両方のシートが選択されたままになりSheet3、アクティブなシートが作成されWorksheets("Sheet2").SelectますがSheet3、唯一の選択されたアクティブなシートが作成されます。
.activateワークシートタブをクリックしていますか?
.selectコントロールを実行してタブをクリックすることをシミュレートします。VBA では、まだシートにいません。
.select複数のシートを作成できますが、1.activateつのみです。
上記を拡張するには: 以下のコードを Replace:=False で実行すると、sheet4 でワークシートの非アクティブ化イベントは発生しません。代わりに Replace:=True を使用すると、非アクティブ化イベントが発生します。
予期しない動作を引き起こす可能性があるため、ほとんどの状況ではイベントを防止することが望ましいです。
つまり、select は、Ctrl キーを押しながらワークシート タブをクリックすることと同等であり、replace:=false が使用されていることを意味します。
サブ
Dim rng As Range
Sheet4.Select Replace:=False
Set rng = Selection
Sheet5.Select Replace:=True
Selection = rng.Value
サブ終了
違いを理解するのに役立ったので、あなたの投稿に感謝します。
ハーベイ