【ExcelVBA入門】アクティブシートの取得・操作方法について徹底解説!

こんにちは、フリーランスエンジニア兼ライターのワキザカ サンシロウです。

皆さんは、VBAでアクティブシートを操作する方法を知っていますか?

選択しているシートの中で操作をしたいケースはよくありますよね。そこで今回は、

  • アクティブなシートを取得する方法
  • アクティブなシートを操作する方法


といった基礎的なことから、

  • シートを追加・コピー・削除する方法
  • シート上のデータを操作する方法


といった応用的な方法まで、徹底的に解説します!

目次

アクティブなシートを取得する方法

はじめに、アクティシートを取得する方法について解説します。

アクティブシートは、次のように書くことで取得できます。

Dim 変数名 as Worksheet
Set 変数名 = ActiveSheet

Worksheet型の変数にActiceSheetの値を変数に入れることで、アクティブシートを操作することができます。

ただ、これだけではアクティブシートが正しく取得できているか、よくわからないですよね。そんな時はシート名を取得して確認するのがおすすめです!

「シート.Name」で簡単に取得することができます。サンプルコード:

Sub Test()

  'アクティブシートを取得
  Dim wsActive As Worksheet
  wsActive = ActiveSheet
  
  'シート名をメッセージで確認
  MsgBox "アクティブシートの名前は" & wsActive.Name & "です"
  
End Sub

実行結果:

このように、簡単にアクティブシートを取得することができます。

アクティブなシートを操作する方法

次に、アクティブシートを操作する方法について解説します。

アクティブに変更

最初は、指定したシートをアクティブシートに変える方法です。

「Worksheets(シート名).Activate」と書くだけで、簡単にシートをアクティブにすることができます。

実行前のシート:

サンプルコード:

Sub Test3()

  '現在のアクティブシートを取得
  Dim wsActiveOld As Worksheet
  Set wsActiveOld = ActiveSheet
  
  
  'アクティブシートを変更
  Worksheets("Sheet2").Activate
    
End Sub

実行後のシート:

このように、簡単にアクティブシートを変更することができます。

シート名の変更

次に、シート名を変える方法について解説します。シート名は「ワークシート.Name」で取得できるのですが、そのまま値を入れて変更することができます。

サンプル実行前:

サンプルコード:

Sub Test4()

  '現在のアクティブシートを取得
  Dim wsActive As Worksheet
  Set wsActive = ActiveSheet
  
  'シート名を変更
  wsActive.Name = "データ一覧"
  
End Sub

サンプル実行後:

このように、簡単にシート名を変更することができます。シート名の変更については、以下でも詳しく解説しているので、気になる方は見てみてくださいね!

シートの追加方法

次は、シートを新しく追加する方法について解説します。

「Workbook.Add」と書くだけで、簡単にシートを追加することができます。追加したシートは必ずアクティブシートになるので、新しく追加したシートのシート名を変更するサンプルを用意しました。

実行前:

サンプルコード:

Sub Test5()

  'シートを追加
  Worksheets.Add
  
  'アクティブシートを取得
  Dim wsActive As Worksheet
  Set wsActive = ActiveSheet
  
  'シート名を変更
  wsActive.Name = "追加したシート"
  
End Sub

実行後:

シートの先頭・末尾に追加したい場合など、シートを追加する方法については以下でも詳しく解説しているので、気になる方は見てみてくださいね!

シートのコピー方法

次は、シートをコピーする方法について解説します。「シート名.Copy 追加する位置」と書くだけで、簡単にシートをコピーすることができます。

「追加する位置」はBeforeまたはAfterを指定することができ、それぞれ指定したシートの前、シートの後にシートを追加することができます。。

コピーしたシートは必ずアクティブシートになるので、コピー後にシート名を変更するサンプルを用意しました。

実行前:

サンプルコード:

Sub Test6()

  'アクティブシートを取得
  Dim wsActive As Worksheet
  Set wsActive = ActiveSheet
  
  'アクティブシートをコピー
  wsActive.Copy after:=wsActive
  
  'シート名を変更
  ActiveSheet.Name = "コピーしたシート"
  
End Sub

実行後:

シートコピーについての詳しい使い方は以下で詳しく解説しているので、気になる方は見てみてくださいね!

シートの削除方法

次は、シートを削除する方法について解説します。「シート名.Delete」と書くだけで、簡単にシートを削除することができます。

アクティブシートを削除するサンプルを用意しました。実行前:

サンプルコード:

Sub Test7()

  'アクティブシートを取得
  Dim wsActive As Worksheet
  Set wsActive = ActiveSheet
  
  'アクティブシートを削除
  Application.DisplayAlerts = False
  wsActive.Delete
  Application.DisplayAlerts = True
  
End Sub

実行後:

シート削除については以下で詳しく解説しているので、気になる方は見てみてくださいね!

シート内のセル操作方法

ここまでアクティブシートの操作方法についてシート操作をメインに解説しました。シート操作以外にも、セル操作を覚えておくと便利なのでまとめて紹介します!

セルに値を書き込む場合は、RangeメソッドまたはCellsメソッドを使います。

Rangeメソッドはセル名、Cellsメソッドは行番号・列番号でセルを指定して値を書き込みます。

詳しい使い方については以下で解説しているので、気になる方は見てみてくださいね!


【VBA入門】Cellsでセルを指定(変数などRangeとの使い分けも解説)
更新日:2024年5月6日

シート内の行操作方法

セル操作以外にも、行を操作する方法を合わせて覚えておくと便利です。

行を挿入する場合はInsertメソッド、コピーする場合はCopyメソッド、削除する場合はDeleteメソッドを使います。

それぞれ以下で詳しく解説しているので、気になる方は見てみてくださいね!


【ExcelVBA入門】行をコピーするためのCopyメソッドの使い方とは
更新日:2024年5月6日

【VBA入門】行・列の削除とクリアをする方法
更新日:2024年5月6日

まとめ

今回は、アクティブシートを取得・操作する方法について徹底的に解説しました!

VBAではシートを操作することが圧倒的に多いです。

今回解説した方法はどれも簡単なので、ぜひ使ってみてくださいね!

この記事を書いた人

【プロフィール】
DX認定取得事業者に選定されている株式会社SAMURAIのマーケティング・コミュニケーション部が運営。「質の高いIT教育を、すべての人に」をミッションに、IT・プログラミングを学び始めた初学者の方に向け記事を執筆。
累計指導者数4万5,000名以上のプログラミングスクール「侍エンジニア」、累計登録者数1万8,000人以上のオンライン学習サービス「侍テラコヤ」で扱う教材開発のノウハウ、2013年の創業から運営で得た知見に基づき、記事の執筆だけでなく編集・監修も担当しています。
【専門分野】
IT/Web開発/AI・ロボット開発/インフラ開発/ゲーム開発/AI/Webデザイン

目次