Excelのマクロを使っているのですがmenuの中のセルをクリックしてもエクセルのタブがひらけません

[code]

    Private Sub Workbook_Open()
    
    Dim i
    For i = 1 To Worksheets.Count
      ActiveSheet.Hyperlinks.Add Anchor:=Range("M" & i), _
      Address:="", _
      SubAddress:=Worksheets(i).Name & "!A1", _
      TextToDisplay:=Worksheets(i).Name
    Next
    
    End Sub
    
[/code]

Excelのマクロ

![](https://i.stack.imgur.com/5Y6RG.png)




`SubbAddress`の行を下記のように書き直してください。

[code]

    '修正前
    SubAddress:=Worksheets(i).Name & "!A1", _
    '修正後
    SubAddress:="'" & Worksheets(i).Name & "'!A1", _
    
[/code]

シート名が数式などを含む場合には、シート名をシングルクォーテーション(`'`)で囲まないと暗黙の型変換の前に自動計算が発生してしまい、正しくリンクが貼れないようです。

**修正前のコードでは正しく動作しないシート名の例**

  * 数式を含む: `0001-1`, `1+23`
  * 空白を含む: ` Hoge`, `Fuga `, `1 2`

単純な前ゼロや日本語の文字列は未確認ですが、一律でシングルクォーテーション("'")で囲って文字列として連結するのが無難でしょう。




`SubbAddress`の行を下記のように書き直してください。

[code]

    '修正前
    SubAddress:=Worksheets(i).Name & "!A1", _
    '修正後
    SubAddress:="'" & Worksheets(i).Name & "'!A1", _
    
[/code]

シート名が数式などを含む場合には、シート名をシングルクォーテーション(`'`)で囲まないと暗黙の型変換の前に自動計算が発生してしまい、正しくリンクが貼れないようです。

**修正前のコードでは正しく動作しないシート名の例**

  * 数式を含む: `0001-1`, `1+23`
  * 空白を含む: ` Hoge`, `Fuga `, `1 2`

単純な前ゼロや日本語の文字列は未確認ですが、一律でシングルクォーテーション("'")で囲って文字列として連結するのが無難でしょう。

