見出し画像

ワークシートのオブジェクト名を変えたい

ActiveSheet.CodeName

上のプロパティだと取得はできるけど読み取り専用なのでオブジェクト名を書き換えるのは不可。

VBプロジェクトを経由してアクセスする必要がある。

'ブック内のシートを表示順に連番のオブジェクト名をつけるサンプル
Sub CodeNameChange()
    Dim iCnt As Long
    Dim iName As String
    For iCnt = 1 To ThisWorkbook.Worksheets.Count
       iName = "Sheet" & Format(iCnt, "00")
       ThisWorkbook.VBProject.VBComponents(ThisWorkbook.Worksheets(iCnt).CodeName).Name = iName
    Next iCnt
End Sub

使うときは[VBAプロジェクトオブジェクトモデルへのアクセスを信頼する]のオプションを有効にする必要があるのであまり推奨されるやり方ではないかもしれない。


よろしければサポートお願いします🥕 サポートはレビュー記事作成の原資となります