Sheets.Select
VBA 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
サブ終了
違いを理解するのに役立ったので、あなたの投稿に感謝します。
ハーベイ