こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

エクセルのセルの値をシート名にするマクロ

エクセルで、例えばB2セルに入力された数字を使って自動でシート名にしたいのですが、(=そのセルの値が変更されたときに 自動的に シート名が変更されるマクロ )どうやったらよいのか良くわかりません。また、重複するシート名があった場合にはアラートを表示させたいです。

例:

1.B2セルに10と入力する
2.もしシート名に重複が無ければ、シート名が自動的に「10月」になり、アクティブセルはB2に戻って復帰する。
3.重複がある場合は「シート名に重複があります」等のアラートを表示して終了する


多分 イベントとかいうものが絡んでくるのでしょうが、マクロは時々使うのですが、いつも記録したものを手直しする程度なので、標準モジュールの部分しか触った事がありません。
どなたか教えてください。お願いします。

投稿日時 - 2003-04-15 22:04:32

QNo.523785

すぐに回答ほしいです

質問者が選んだベストアンサー

こんにちは。

シート名のタブを右クリックし、コードの表示で出てきたVBE画面の空白部分にコピペします。

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
On Error GoTo ERR:
If Target.Cells(1, 1).Address = "$B$2" Then
   Me.Name = Target.Cells(1, 1).Text & "月"
End If
 Target.Cells(1, 1).Select
Exit Sub
ERR:
 MsgBox "その名前には変更出来ません。", vbCritical + vbOKOnly, "ERROR"
 Resume Next
End Sub

投稿日時 - 2003-04-15 22:43:06

お礼

ありがとうございます。
見事 シート名が自動的に変わりました。

なんか・・感激ですねぇ。何回も繰り返してしまいました。(笑)

投稿日時 - 2003-04-16 06:34:59

このQ&Aは役に立ちましたか?

7人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問