01-VBA

ExcelVBAのActiveSheetプロパティ

目標

ExcelVBAのActiveSheetプロパティを理解して操作できる

ExcelVBAではプロパティを知るとかなり多くの処理を自動で行わせることができます。加えて、VBAのプログラミング学習では変数や制御構造を学ぶ前にいろいろな設定を経験すると制御構造や様々なデータ構造の学習に入ったときに、オブジェクトやプロパティについて悩まなくてもよくなるので学習効率が良くなります。

ExcelVBAでよく使う「9つのプロパティ」

プロパティ(アルファベット順)
ActiveSheet ※今回の記事で扱うプロパティです。
ActiveCell
Cells
End
Offset
Range
Sheets
Value
Worksheets

ActiveSheetプロパティの概要と利用方法

ActiveSheetプロパティとは

ActiveSheetプロパティは、現在アクティブとなっているワークシートを取得します。

「アクティブ」とは、現在利用している、または利用できる状態にあるオブジェクトを指します。例えばいくつかのExcelファイルを開いている場合、入力や操作が可能なファイルは必ずひとつとなります。この状態にあるものが「アクティブ」なオブジェクトとなります。

ActiveSheetプロパティの利用方法

Excelの準備

Excelでシートを追加して「Sheet2」の名前を「sample1」に変更します。

Sheet2の名前をsample1に変更します。
Excelの準備は以上です。

使い方のパターンを確認

❶ ActiveSheetプロパティでシートを操作する時は必ず事前に、

シートを選択するか

Worksheets(“sample1”).Select

アクティブにします。

Worksheets(“sample1”).Activate

「Select」と「Activate」の違い

「Select(選択する)」は複数のワークシートまたはセルを選択できます。
「Activate(アクティブにする)」は常に1つを選択します。

選択するオブジェクトが1つなら、「Select(選択する)」を利用してもアクティブとして捉えられます。

操作したいワークシートが選択できたらActiveSheetプロパティを利用します。

例:アクティブなワークシート上の任意のセルへの文字列の入力(下の記述では、❶でワークシートsample1をアクティブとしているので、ワークシートsample1のセルA1に「文字列」が設定されます。)

ActiveSheet.Range(“A1”).Value = “文字列”

ActiveSheetプロパティの「Previous」と「Next」

ActiveSheetの「右隣のシート」や「左隣のシート」を操作する場合やアクティブシートに変更する場合などに利用します。

アクティブなシートから1つ左のシートをアクティブにする時。

ActiveSheet.Previous.Select

アクティブなシートから1つ右のシートをアクティブにする時。

ActiveSheet.Next.Select

ActiveSheetプロパティの「Index」

アクティブシートがマクロブック内のワークシートで左から何番目に存在するかを確認できます。

サンプルプロシージャ

Option Explicit

Sub practiceAS()
    '事前に予めシートを選択するかアクティブにします。
    Worksheets("sample1").Select

    '######ここはコメントにしています#####
    'アクティブにする場合
    'Worksheets("sample1").Activate
    '######ここはコメントにしています#####

    ActiveSheet.Range("A1").Value = "ここはシートsample1のセルA1である"

    MsgBox "1つ左は" & ActiveSheet.Previous.Name
    MsgBox "1つ右は" & ActiveSheet.Next.Name
    MsgBox "シートは左から" & ActiveSheet.Index & "番目です"
    
    ActiveSheet.Previous.Select
    
End Sub

実行結果

プログラムの動きを示すと以下のようになっています。

sample1のシートを選択してアクティブシートに指定します。

Worksheets(“sample1”).Select

‘######ここはコメントにしています#####
‘Worksheets(“sample1”).Activate
‘######ここはコメントにしています#####

アクティブシートとなった「sample1」のセルA1に「ここはsample1.xlsmのセルA1である 」が入力されます。

ActiveSheet.Range(“A1”).Value = “ここはシートsample1のセルA1である”

次にメッセージボックスでsample1のシートの左側のシート名が表示されます。

MsgBox “1つ左は” & ActiveSheet.Previous.Name

メッセージボックスの「OK」を押下すると2つ目のメッセージボックスでsample1のシートの右側のシート名が表示されるます。

MsgBox “1つ右は” & ActiveSheet.Next.Name

先ほど同様にメッセージボックスの「OK」を押下すると3つ目のメッセージボックスが現れてアクティブシートが左から2番目であることが表示されます。

MsgBox “シートは左から” & ActiveSheet.Index & “番目です”

更に続けてメッセージボックスの「OK」を押下すると現在のアクティブシート(sample1)から1つ左のSheet1にアクティブシートが変更さます。

ActiveSheet.Previous.Select

ActiveSheetプロパティはアクティブなシートに対して様々な設定を行うための便利なプロパティです。アクティブなシートの任意のセルに文字列を入力するだけでなく、セルの値を取得するなど色々な場面で使用されます。

今回の内容は以上です。

初心者も実践で通用!「VBA・VBS」おすすめ書籍5選 | 現役エンジニア&プログラミングスクール講師「VBA・VBS」初心者の方が実践業務の中でそれらを活用しt活躍できるために必要な知識を習得できる書籍を紹介しています。ページの下部には「おすすめのITスクール情報」「おすすめ求人サイト」について情報を掲載中。...

ブックマークのすすめ

「ほわほわぶろぐ」を常に検索するのが面倒だという方はブックマークをお勧めします。ブックマークの設定は別記事にて掲載しています。

「お気に入り」の登録・削除方法【Google Chrome / Microsoft Edge】「お気に入り」の登録・削除方法【Google Chrome / Microsoft Edge】について解説している記事です。削除方法も掲載しています。...
【パソコン選び】失敗しないための重要ポイント | 現役エンジニア&プログラミングスクール講師【パソコン選び】失敗しないための重要ポイントについての記事です。パソコンのタイプと購入時に検討すべき点・家電量販店で見かけるCPUの見方・購入者が必要とするメモリ容量・HDDとSSDについて・ディスプレイの種類・バッテリーの持ち時間や保証・Officeソフト・ウィルス対策ソフトについて書いています。...
RELATED POST
01-VBA

クラスの利用方法|Excel VBA(番外編)| 現役エンジニア&プログラミングスクール講師

2023年2月19日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site
01-VBA

演算子|Excel VBA (Part.1)【算術演算子・代入演算子】| 現役エンジニア&プログラミングスクール講師

2022年10月24日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site
01-VBA

Excel VBA まとめ | 現役エンジニア&プログラミングスクール講師

2023年2月18日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site
01-VBA

Excel VBA の イベント編(Part.2)Functionプロシージャ | 現役エンジニア&プログラミングスクール講師

2022年12月29日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site
01-VBA

制御構文|Excel VBA (Part.7)【For Next】ネスト編(後編)重複のないランダムな数の生成 | 現役エンジニア&プログラミングスクール講師

2022年11月26日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site
01-VBA

演算子|Excel VBA (Part.3)【比較演算子】条件の発展的な利用(前編)

2022年10月27日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site