• ベストアンサー

エクセルVBA 参照するシートを 変数化

早速ですが 参照するシートを 変数化して、冒頭で 宣言したいのですが datasheet1="2012" If Format(datasheet1.Cells(cnt, 2), "hh:mm:ss") = Format("9:00:00", "hh:mm:ss") Then この様な扱い方なんですが Dim datasheet1 As Object とやってもダメでした。 よろしくどうぞ

質問者が選んだベストアンサー

  • ベストアンサー
  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.1

こんにちは。 Dim sheetname As String sheetname = "2012" Dim sheet1 As Worksheet Set sheet1 = Worksheets(sheetname) これでsheet1には2012という名前のシートが入ります。 あとはsheet1.Range("A1")等でアクセスできるようになります。

007itochan
質問者

お礼

早速 ありがとうございます。 理解しました

その他の回答 (1)

  • nak777r
  • ベストアンサー率36% (49/136)
回答No.2

ソースの頭で Public Property Get datasheet1() As Worksheet Set datasheet1 = Application.ThisWorkbook.Worksheets("2012") End Property とプロパティ化して記載しておけば 以降、どの関数でもそのまま使えます。 Public Sub test() If Format(datasheet1.Cells(cnt, 2), "hh:mm:ss") = Format("9:00:00", "hh:mm:ss") Then End If End Sub Public Sub test2() If Format(datasheet1.Cells(cnt, 2), "hh:mm:ss") = Format("10:00:00", "hh:mm:ss") Then End If End Sub

007itochan
質問者

お礼

ありがとうございます。 恐縮ですが、早い方、ベストということにてご容赦のほど

関連するQ&A

専門家に質問してみよう