シートのアクティブとセレクトの違い

以下のVBAサブルーチン Sheets_Activate_Select は、Excelのシートのアクティブ化と選択の違いをデモンストレーションします。

' シートのアクティブとセレクトの違い
Sub Sheets_Activate_Select()

    Sheet1.Select                           ' Sheet1 を選択します。
    Sheet2.Select Replace:=False            ' Sheet2 を選択し、Sheet1 も選択された状態にします。
    Sheet3.Activate                         ' Sheet3 をアクティブにし、Sheet1 と Sheet2 の選択を解除します。
    Sheet2.Select Replace:=False            ' Sheet2 を再度選択し、Sheet3 もアクティブな状態にします。
    
    ThisWorkbook.Sheets.Select              ' すべてのシートを選択します。
    Sheet3.Activate                         ' Sheet3 をアクティブにし、他のシートの選択を解除します。
    ThisWorkbook.Sheets(Array(1, 2)).Select ' Sheet1 と Sheet2 を選択します。
    
End Sub

詳細な説明

  1. Sheet1.Select
    • シート Sheet1 を選択します。選択されたシートはアクティブシートになります。
  2. Sheet2.Select Replace:=False
    • シート Sheet2 を選択し、Sheet1 も選択された状態を維持します。Replace:=False により、現在の選択を解除せずにシートを追加で選択します。
  3. Sheet3.Activate
    • シート Sheet3 をアクティブにします。アクティブシートはシングルであり、この操作は Sheet1Sheet2 の選択を解除します。
  4. Sheet2.Select Replace:=False
    • シート Sheet2 を再度選択し、Sheet3 もアクティブな状態にします。
  5. ThisWorkbook.Sheets.Select
    • 現在のブック内のすべてのシートを選択します。選択されたすべてのシートは選択状態にありますが、最初に選択されたシートがアクティブシートになります。
  6. Sheet3.Activate
    • シート Sheet3 をアクティブにし、他のすべてのシートの選択を解除します。
  7. ThisWorkbook.Sheets(Array(1, 2)).Select
    • Sheet1Sheet2 を選択します。Array(1, 2) はシートのインデックスを指定しています。

シートのアクティブ化と選択の違い

  • Select
    • Select メソッドは、シートを選択します。複数のシートを選択することができ、選択されたシートの中で最初に選択されたシートがアクティブシートとなります。
    • Replace:=False を使用することで、既存の選択を保持しつつ新たなシートを選択することができます。
  • Activate
    • Activate メソッドは、特定のシートをアクティブにします。アクティブシートは一度に1つしか存在できず、アクティブシートを変更すると他のシートの選択が解除されます。

この違いを理解することで、複数のシートを操作する際に適切な方法を選択することができます。

Follow me!