VBA シートの選択、シートのアクティブ化、アクティブシートの取得

Written by

Editorial Team

Reviewed by

Steve Rynearson

Translated by

masahiro yoshida

Last updated on 8月 1, 2022

今回は、VBAのActiveSheetオブジェクトについて説明します。また、ワークシートをアクティブにする方法、選択する方法、ワークシートを移動する方法(およびその他多数)についても説明します。VBAでワークシートを操作するための詳しい情報は、VBAワークシートガイドをご覧ください。

アクティブシート(ActiveSheet)

VBAでは、アクティブシートは現在アクティブであるワークシートのことを指します。一度にアクティブにできるのは1つのシートだけです。

ワークシートのアクティブ化(ActiveSheetの設定)

アクティブシートを設定するには、Worksheet.Activateを使用します。

Worksheets("入力").Activate

Activateコマンドは、実際にシートに「移動」して、表示されているシートを変更します。

vba activate sheet

上記の例では、シートタブ名(またはシート名)を使っています。 代わりに、ワークシートのVBAコード名を使用することもできます。

Sheet1.Activate

vba activesheet

アクティブシート名

アクティブシートのシート名を取得するには以下のようにします。

msgbox ActiveSheet.name

選択されたシートとアクティブシートの比較

どの時点でも、アクティブシートになれるのは1つのシートだけです。ただし、複数のワークシートを一度に選択することは可能です。

複数のワークシートが選択されている場合、「最上位」のワークシートのみがアクティブ(ActiveSheet)とみなされます。

vba selected sheets

ワークシートの選択

ワークシートをアクティブにする代わりに、ワークシートを選択したい場合。代わりに.Selectを使用します。

シート名によるワークシートを選択

シート名からワークシートを選択します。

Sheets("入力").Select

vba select sheet

インデックス番号によるワークシートの選択

他のタブとの相対的な位置に基づいてワークシートを選択します。

Worksheets(1).Select

vba select sheet index number

VBAのコード名でワークシートを選択する

Sheet1.Select

VBAコード名でワークシートを選択することで、ワークシート名の変更によるエラーを防ぐことができます。

現在のワークシートを選択する

現在のワークシートを選択するには、ActiveSheetオブジェクトを使用します。

ActiveSheet.Select

その他のアクティベート/シート選択の例

ActiveSheetを変数に設定する

アクティブシートをWorksheetオブジェクト変数 に代入します。

Dim ws As Worksheet

Set ws = ActiveSheet

アクティブシートのシート名の変更

アクティブシートのシート名を変更します。

ActiveSheet.Name = "新しいシート名"

With ActiveSheet

Withステートメントを使うと、オブジェクト(SheetsやActiveSheetなど)を扱うときに、コードを効率化することができます。

With ActiveSheet
    .Name = "リフレッシュ"
    .Cells.Clear
    .Range("A1").Value=.Name
End With

各コードの前に「ActiveSheet」を繰り返す必要がないことに注意してください。これは、長いコマンドのリストを扱うときに、非常に大きな時間の節約になります。

選択されたシートをループする

次のマクロは、選択されたすべてのシートをループして、名前を表示します。

Sub GetSelectedSheetsName()
    Dim ws As Worksheet

    For Each ws In ActiveWindow.SelectedSheets
         MsgBox ws.Name
    Next ws

End Sub

次のシートへ移動

このコードは、次のシートに移動します。もし、ActiveSheetが最後のシートであれば、Workbookの最初のシートに移動します。

If ActiveSheet.Index = Worksheets.Count Then
    Worksheets(1).Activate
Else
    ActiveSheet.Next.Activate
End If

 

vba-free-addin

VBA Code Examples Add-in

Easily access all of the code examples found on our site.

Simply navigate to the menu, click, and the code will be inserted directly into your module. .xlam add-in.

(No installation required!)

Free Download

Return to VBA Code Examples