Home » ExcelVBA Rangeオブジェクト » セルの値をシート名にするマクロ

対象:Excel2000, Excel2002, Excel2003, Excel2007

アクティブセルの値を[名前をつけて保存]ダイアログに表示するマクロをご紹介しました。

似たようなことですが、アクティブセルの値をワークシート名にしたい、という要望をいただくこともあります。

[スポンサードリンク]

これもVBAで簡単なマクロを記述すれば実装できます。

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 » ExcelVBA Rangeオブジェクト » セルの値をシート名にするマクロ

「ExcelVBA Rangeオブジェクト」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.