• ベストアンサー

セルに入力した内容がシート名になる

たとえば、A1のセルに入力した内容が、シート名にリンクすることなんてできますでしょうか? A1に『太郎』と打ったら、シート名も『太郎』となる・・・無理でしょうか。 よろしくお願いします。

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

  • ベストアンサー
  • nda23
  • ベストアンサー率54% (777/1415)
回答No.4

隣のシートでも、他所のブックでも可能です。 セルが結合している場合は範囲の左上のセルに値が入ります。 但し、名前を変更したことによって生じるイベントは「その」シートで 発生します。 従って、プロシージャを記述する位置が変わります。 ブックのSheetChangeイベントプロシージャに記述してください。 Sub Workbook_SheetChange(~ Sheet(1).Name = Sheet(2).Cells(1, 1).Value End Sub 名前を変えたいシートが1番目、名前を記入するシートが2番目の場合です。

yrrpk059
質問者

お礼

出来ました! 有難うございました。本当に助かりました。

その他の回答 (3)

  • k_sidina
  • ベストアンサー率52% (9/17)
回答No.3

> 隣のシートのセルでも可能ですか?しかもそのセルは2つが結合しておりまして・・・。初心者すぎて、隣のシートのアドレスがきちんと書けていないのでしょうか?エラーが出てしまいます。。。お願いします。 「これがシートの隣のセルでも可能か?」ということであれば、 Private Sub Worksheet_Change(ByVal Target As Range) If Target = Range(Cells(1, 2), Cells(1, 2)) Then ActiveSheet.Name = Cells(1, 2).Value End If End Sub こんな感じでいかがでしょう?

yrrpk059
質問者

お礼

ありがとうございました!!

  • suz83238
  • ベストアンサー率30% (197/656)
回答No.2

できますよ。ただし、関数とかではできません。 シートモジュールに下記を入れればOK、A1に何か入れればシート名に反映されます。 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$A$1" Then ActiveSheet.Name = Range("A1").Value End Sub

yrrpk059
質問者

お礼

ありがとうございました!!

yrrpk059
質問者

補足

隣のシートのセルでも可能ですか?しかもそのセルは2つが結合しておりまして・・・。初心者すぎて、隣のシートのアドレスがきちんと書けていないのでしょうか?エラーが出てしまいます。。。お願いします。

  • nda23
  • ベストアンサー率54% (777/1415)
回答No.1

シート名はNameプロパティです。 該当シートのChangeイベントに次のステップを入れればよいでしょう Me.Name = Me.Cells(1, 1).Value 但し、空欄だったり、他のシートと重複するとエラーになります。 これを避けるには上記ステートメントの前にチェックを入れます。

yrrpk059
質問者

お礼

実践できました。早速のご回答有難うございました。

yrrpk059
質問者

補足

隣のシートのセルでも可能ですか?しかもそのセルは2つが結合しておりまして・・・。初心者すぎて、隣のシートのアドレスがきちんと書けていないのでしょうか?エラーが出てしまいます。。。お願いします。

関連するQ&A

専門家に質問してみよう