【VBA】シートをオブジェクト名で指定する


デフォルトのシートオブジェクト名

デフォルトではSheet1(シート名) などとなっています。

シートオブジェクト名を変更

デフォルトのままでもいいけど、分かりやすい名前に変更すると扱いやすい。

セルの指定などに使うとこんな感じでスッキリするから好き
Sub MasterDataAdd1()
    '最終行のひとつ下にデータを追加する
    Dim LastRow As Long
    LastRow = Master.Cells(Rows.Count, 1).End(xlUp).Row
    Master.Cells(LastRow + 1, 1).Value = 10
    Master.Cells(LastRow + 1, 2).Value = "jjj"
End Sub

実行結果

TihsWorkbook~とかだとこんな感じ
Sub MasterDataAdd()
    '最終行のひとつ下にデータを追加する
    Dim LastRow As Long
    LastRow = ThisWorkbook.Worksheets("マスタ").Cells(Rows.Count, 1).End(xlUp).Row
    ThisWorkbook.Worksheets("マスタ").Cells(LastRow + 1, 1).Value = 10
    ThisWorkbook.Worksheets("マスタ").Cells(LastRow + 1, 2).Value = "jjj"
End Sub

長くなるしシート名を変更したとき面倒!
勝手にシート名を変更する人はよくいます。

ワタシ流こだわり

どんなBookがActiveになっていてもちゃんと指定できるように
いつなんどきもシートオブジェクト名をつけたい!