対象:Excel2000, Excel2002, Excel2003, Excel2007
アクティブセルの値を[名前をつけて保存]ダイアログに表示するマクロをご紹介しました。
似たようなことですが、アクティブセルの値をワークシート名にしたい、という要望をいただくこともあります。
[スポンサードリンク]
これもVBAで簡単なマクロを記述すれば実装できます。
Sub アクティブセルの値をワークシート名に()
On Error GoTo ERR_HANDLER
ActiveSheet.Name = ActiveCell.Value
Exit Sub ERR_HANDLER:
MsgBox "選択されているセルの値はシート名にできません。" _
& vbCrLf & "他のセルを選択するか、データを修正してください。"
End Sub
On Error GoTo ERR_HANDLER
ActiveSheet.Name = ActiveCell.Value
Exit Sub ERR_HANDLER:
MsgBox "選択されているセルの値はシート名にできません。" _
& vbCrLf & "他のセルを選択するか、データを修正してください。"
End Sub
実質的には、
ActiveSheet.Name = ActiveCell.Value
という一行だけでアクティブシートの名前をアクティブセルの値にできます。
ただし、シートの名前には使える文字の種類や文字数に制限がありますから、セルの値によってはエラーが発生する可能性があります。
そのためエラーのときにはERR_HANDLERまで飛ぶようにして、
On Error GoTo ERR_HANDLER
そのERR_HANDLER内で
MsgBox "選択されているセルの値はシート名にできません。" & vbCrLf & "他のセルを選択するか、データを修正してください。"
とメッセージを表示させています。
セルの値 → シート名
というネタだったわけですが、逆の
セルの値 ← シート名
については以下のようなネタを既にご紹介していますので、合わせてご参照ください。
[スポンサードリンク]
Home » Excel VBA Rangeオブジェクト » セルの値をシート名にするマクロ