【VBA】Worksheetオブジェクトの使い方まとめ

Excel VBAでワークシートを操作する際には、Worksheetオブジェクトが不可欠です。この記事では、Worksheetオブジェクトの基本から応用まで、より詳細にわたって解説します。初心者から中級者まで、この記事でWorksheetオブジェクトの全貌を理解できるでしょう。

目次

Worksheetオブジェクトとは何か?

概要と特性

Worksheetオブジェクトは、Excelのワークシートそのものをプログラムで操作するためのオブジェクトです。このオブジェクトは、WorkSheetsコレクションの一部として存在します。つまり、Excelの各ワークブックには複数のワークシートがあり、それらがWorkSheetsコレクションを形成しています。

データ型の宣言

Worksheetオブジェクトのデータ型はWorksheetとなります。以下のようにVBAで宣言することができます。

Dim ws As Worksheet

このwsという変数が、今後ワークシートを操作する際の「代理人」となります。

注意点:WorksheetsとWorksheetの違い

WorksheetsWorksheetはよく似ていますが、意味は大きく異なります。WorksheetsはWorksheetオブジェクトの集まり、すなわちコレクションです。一方でWorksheetは単一のワークシートを指します。

Worksheetオブジェクトの指定方法

インデックスで指定

ワークシートは、左から右へと1, 2, 3とインデックス番号が振られています。このインデックスを使って指定する方法です。

Set ws = Worksheets(1)

シート名で指定

ワークシートには名前があります(例:Sheet1)。この名前を使って指定も可能です。

Set ws = Worksheets("Sheet1")

Activesheetで指定

現在アクティブな(選択されている)シートを指定する方法です。

Set ws = Activesheet

※注意:Activesheetは厳密にはWorksheetオブジェクトではありません。

Worksheetオブジェクトのプロパティとメソッド

Activateメソッド

このメソッドでワークシートをアクティブにすることができます。

ws.Activate

Nameプロパティ

ワークシートの名前を取得または設定できます。

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

Cellsプロパティ

特定のセルにアクセスすることができます。

ws.Cells(1, 1).Value = "テスト"

Rangeプロパティ

特定の範囲にアクセスすることができます。

ws.Range("A1:B2").Value = "テスト"

サンプルコード集

シートをアクティブにする

Dim ws As Worksheet
Set ws = Worksheets("Sheet1")
ws.Activate

処理の流れ

  1. Dim ws As WorksheetでWorksheetオブジェクトを宣言します。
  2. Set ws = Worksheets("Sheet1")で”Sheet1″を指定します。
  3. ws.Activateで”Sheet1″をアクティブにします。

シート名を変更する

Dim ws As Worksheet
Set ws = Worksheets("Sheet1")
ws.Name = "新しいシート名"

処理の流れ

  1. Dim ws As WorksheetでWorksheetオブジェクトを宣言します。
  2. Set ws = Worksheets("Sheet1")で”Sheet1″を指定します。
  3. ws.Name = "新しいシート名"でシート名を変更します。

セルに値を入力する

Dim ws As Worksheet
Set ws = Worksheets("Sheet1")
ws.Cells(1, 1).Value = "こんにちは"

処理の流れ

  1. Dim ws As WorksheetでWorksheetオブジェクトを宣言します。
  2. Set ws = Worksheets("Sheet1")で”Sheet1″を指定します。
  3. ws.Cells(1, 1).Value = "こんにちは"でA1セルに「こんにちは」と入力します。

範囲に値を入力する

Dim ws As Worksheet
Set ws = Worksheets("Sheet1")
ws.Range("A1:B2").Value = "テスト"

処理の流れ

  1. Dim ws As WorksheetでWorksheetオブジェクトを宣言します。
  2. Set ws = Worksheets("Sheet1")で”Sheet1″を指定します。
  3. ws.Range("A1:B2").Value = "テスト"でA1からB2までの範囲に「テスト」と入力します。

Worksheetオブジェクトに関するFAQ

Q:Worksheetオブジェクトとは何ですか?

A:WorksheetオブジェクトはExcel VBAでワークシートを操作するためのオブジェクトです。このオブジェクトを使用することで、セルの値の読み書き、シートの名前の変更、シートの追加や削除など、多くの操作が可能になります。

Q:Worksheetオブジェクトをどのように宣言しますか?

A:Worksheetオブジェクトは以下のようにVBAで宣言できます。

Dim ws As Worksheet

このwsという変数が、今後ワークシートを操作する際の「代理人」となります。

Q:複数のWorksheetオブジェクトを一度に操作する方法は?

A:For Each文を使用して、Worksheetsコレクションをループ処理することで、複数のWorksheetオブジェクトを一度に操作できます。

Dim ws As Worksheet
For Each ws In Worksheets
    ' ここで各シートに対する操作を行う
Next ws

Q:特定のシートが存在するかどうかを確認する方法は?

A:エラーハンドリングを使用して、特定のシートが存在するかどうかを確認できます。

Dim ws As Worksheet
On Error Resume Next
Set ws = Worksheets("Sheet1")
On Error GoTo 0
If ws Is Nothing Then
    MsgBox "Sheet1は存在しません。"
Else
    MsgBox "Sheet1は存在します。"
End If

Q:シートをコピーする方法は?

A:Copyメソッドを使用して、シートをコピーできます。

Worksheets("Sheet1").Copy After:=Worksheets("Sheet2")

このコードは、”Sheet1″を”Sheet2″の後にコピーします。

Q:シートを削除する方法は?

A:Deleteメソッドを使用して、シートを削除できます。

Worksheets("Sheet1").Delete

このコードは、”Sheet1″を削除します。ただし、確認ダイアログが表示されるので注意が必要です。

Q:シートの保護と解除の方法は?

A:ProtectメソッドとUnprotectメソッドを使用して、シートの保護と解除ができます。

Worksheets("Sheet1").Protect
Worksheets("Sheet1").Unprotect

関連動画

まとめ

Worksheetオブジェクトは、Excel VBAでワークシートを効率よく操作するための基本的なオブジェクトです。この記事で紹介した各プロパティやメソッドを活用することで、Excel VBAのプログラミングが一段と容易になります。特に、Worksheetオブジェクトの指定方法やプロパティ、メソッドの使い方は、日常的なVBAプログラミングで頻繁に使用されるものです。しっかりと理解して、自分のプログラミングスキルを高めてください。

Excelのショートカットキーの練習

当サイトはショートカットキーの練習を実際の動きを確認しながら練習できる機能がついています。繰り返し指を動かして練習ができるので、ゲーム感覚で遊んでいくうちに自然とショートカットキーが使えるようになれます。ショートカットキーは暗記するよりも実際に手を動かして練習していったほうが習得が早くなるので、是非当サイトをブックマークに登録し定期的に練習してみてください。下記のSTARTキーを押下すると練習を始められます。

下のスタートボタンを押して練習モードに入ります。
STARTSTOP
※入力モード切り替え ctrl + shift + alt + space
PRE
NEXT
現在の問題をリストから除外
除外したリストをリセット
現在の除外状況のURL取得
コピー
ガイドモード
リピートモード

※推奨ブラウザ Google Chrome

PUSH ENTER
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次