サイトアイコン pulogu.net

ワークシートの名前を取得する。

目次

目的

目次まで戻る

マクロの一例

  1. ワークシートが 3 枚ある状態でテストしてみます。
    Sheet1 ~ 3
  2. 下記マクロを実行してみます。
    Sub ワークシートの名前を取得するマクロ()
    Debug.Print Worksheets(1).Name
    Debug.Print Worksheets(2).Name
    Debug.Print Worksheets(3).Name
    End Sub
  3. VBE のイミディエイトウィンドウに以下の内容が出力されました。
    Sheet1 , Sheet2 , Sheet3

目次まで戻る

グラフシートがある場合

  1. グラフシートがある状態でテストしてます。
    「Graph1」があります。
  2. 下記マクロを実行してみます。
    Sub sheets使用_ワークシートの名前を取得するマクロ()
    Debug.Print Sheets(1).Name
    Debug.Print Sheets(2).Name
    Debug.Print Sheets(3).Name
    Debug.Print Sheets(4).Name
    End Sub
    1. Sheets で操作対象取得。
  3. VBE のイミディエイトウィンドウに以下の内容が出力されました。
    Graph1 も取得されている。

Worksheets でグラフシートの名前を取得しようとした場合、エラーが発生するようです。

  1. エラーが発生するマクロを実行してみます。
    Sub エラー発生_ワークシートの名前を取得するマクロ()
    Debug.Print Worksheets(1).Name
    Debug.Print Worksheets(2).Name
    Debug.Print Worksheets(3).Name
    Debug.Print Worksheets(4).Name 'エラー
    End Sub
  2. エラー発生。
    実行時エラー '9':
    インデックスが有効範囲にありません。
    エラー発生行。

目次まで戻る

ループで取得

  1. Sheet1 ~ 3 をループで取得してみます。

    Sheet1 ~ 3
  2. 下記マクロを実行してみます。
    Sub ループでワークシート名取得()
      Dim a
      For a = 1 To Worksheets.Count
        Debug.Print Worksheets(a).Name
      Next
    End Sub
  3. VBE イミディエイトウィンドウへの出力結果です。
    Sheet1 ~ 3
    1. 下記マクロでも同じ結果になりました。

      Sub ForEach_ループでワークシート名取得()
      Dim a
      For Each a In Worksheets
      Debug.Print a.Name
      Next
      End Sub

テスト環境

以上、閲覧ありがとうございました。

 

目次まで戻る

モバイルバージョンを終了