Excel VBA

【Excel VBA】【マクロ】【Tips】ワークシートをオブジェクト名で使用する方法

こんにちは!Lenocoです。本日も見てくださりありがとうございます。

今回はワークシートについてのTips回です!!!

以前、「Withとオブジェクト変数を使ってコードを見やすくシンプルに!」というブログを書いたのですが、
その中で、ワークシートをオブジェクト変数にいれて使用する方法を紹介しました。
今回は、ワークシートをオブジェクト名で使用する方法をご紹介します。
とても便利ですので、是非参考にしてみてください!

ワークシートをオブジェクト名で使用する方法

ワークシートのオブジェクト名とは

オブジェクト名はワークシートに定められている固有名称のようなものです。
シート名とは異なりますが、コードの中でオブジェクト名を使うことでワークシートを表現することができます。
オブジェクト名は、「プロパティウィンドウ」から確認できます。
Alt+F11でVBEの画面を開き、VBEメニューから「表示」→「プロパティウィンドウ」を選択するとプロパティウィンドウが表示されます。
任意のシートを選択すると、プロパティウィンドウ内に「(オブジェクト名)」という項目が確認できると思います。
これがオブジェクト名です。
デフォルトでは、シート名とオブジェクト名は同じ名称になっています。

オブジェクト名を編集する

初期設定では「Sheet1」「Sheet2」というような名称になっているので、これを分かりやすい名称に変えていきましょう。
編集方法は簡単で、プロパティウィンドウの「(オブジェクト名)」の欄にカーソルを当て、書き換えます。
※「s_Sagyo」としました。

前回使用したコードとコードの説明

では、前回使用したコードを使って、
オブジェクト名を使用したコードに変更していきましょう。

シート名を使用した元のコード(おさらい)

Sub ChangeSheetAndCell()

    ThisWorkbook.Sheets("Sheet15").Tab.ColorIndex = 3
    ThisWorkbook.Sheets("Sheet15").Name = "作業用シート"
    
    ThisWorkbook.Sheets("作業用シート").Range("A1") = "AAA"
    ThisWorkbook.Sheets("作業用シート").Range("A1").Font.ThemeColor = xlThemeColorAccent1
    ThisWorkbook.Sheets("作業用シート").Range("A1").Font.Name = "Meiryo UI"
    ThisWorkbook.Sheets("作業用シート").Range("A1").Font.Size = 20

End Sub

コードの説明(おさらい)

「Sheet15」という名前のシートのシート見出しの色を赤に変更します。
そして、そのシートのシート名を「作業用シート」とします。
そのシートのA1セルに「AAA」と入れ、フォントカラーを青色、フォント名を「Meiryo UI」、フォントサイズを20とします。

オブジェクト変数バージョンのコード(おさらい)

以下、オブジェクト変数を使用した場合です。

Sub ChangeSheetAndCell2()
    Dim ws As Worksheet
    Dim tCell As Range

    Set ws = ThisWorkbook.Sheets("Sheet15")

    ws.Tab.ColorIndex = 3
    ws.Name = "作業用シート"

    Set tCell = ws.Range("A1")

    tCell = "AAA"
    tCell.Font.ThemeColor = xlThemeColorAccent1
    tCell.Font.Name = "Meiryo UI"
    tCell.Font.Size = 20

End Sub

オブジェクト名バージョンのコード

上記のコードを、オブジェクト名を使用して書き換えてみましょう。
オブジェクト名は「s_Sagyo」としました。

Sub ChangeSheetAndCellObjectName()
    Dim tCell As Range
    
    s_Sagyo.Tab.ColorIndex = 3
    s_Sagyo.name = "作業用シート"
    
    Set tCell = s_Sagyo.Range("A1")
    
    tCell = "AAA"
    tCell.Font.ThemeColor = xlThemeColorAccent1
    tCell.Font.name = "Meiryo UI"
    tCell.Font.Size = 20
End Sub

どうでしょうか。動きとしては全く同じですが、オブジェクト変数の定義と設定の行が省けたので、少しすっきりしましたね。

さいごに

ワークシートをオブジェクト名で使用することで、
プロジェクト全体でシートをオブジェクトとして指定することができ、
変数定義や設定の行を省くことができるというメリットがあります。

Withやオブジェクト変数と合わせ、
オブジェクト名でワークシートを取り扱う方法も選択肢にいれておくと、さらにVBAの幅が広がりそうですね!

【Excel VBA】【マクロ】【Tips】Withとオブジェクト変数を使ってコードを見やすくシンプルに!こんにちは!Lenocoです。本日も見てくださりありがとうございます。 今回はWithとオブジェクト変数についてのTips回です!!!...

Lenoco

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です