- ベストアンサー
セルに入力した内容がシート名になる
たとえば、A1のセルに入力した内容が、シート名にリンクすることなんてできますでしょうか? A1に『太郎』と打ったら、シート名も『太郎』となる・・・無理でしょうか。 よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
隣のシートでも、他所のブックでも可能です。 セルが結合している場合は範囲の左上のセルに値が入ります。 但し、名前を変更したことによって生じるイベントは「その」シートで 発生します。 従って、プロシージャを記述する位置が変わります。 ブックのSheetChangeイベントプロシージャに記述してください。 Sub Workbook_SheetChange(~ Sheet(1).Name = Sheet(2).Cells(1, 1).Value End Sub 名前を変えたいシートが1番目、名前を記入するシートが2番目の場合です。
その他の回答 (3)
- k_sidina
- ベストアンサー率52% (9/17)
> 隣のシートのセルでも可能ですか?しかもそのセルは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 こんな感じでいかがでしょう?
お礼
ありがとうございました!!
- suz83238
- ベストアンサー率30% (197/656)
できますよ。ただし、関数とかではできません。 シートモジュールに下記を入れればOK、A1に何か入れればシート名に反映されます。 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$A$1" Then ActiveSheet.Name = Range("A1").Value End Sub
お礼
ありがとうございました!!
補足
隣のシートのセルでも可能ですか?しかもそのセルは2つが結合しておりまして・・・。初心者すぎて、隣のシートのアドレスがきちんと書けていないのでしょうか?エラーが出てしまいます。。。お願いします。
- nda23
- ベストアンサー率54% (777/1415)
シート名はNameプロパティです。 該当シートのChangeイベントに次のステップを入れればよいでしょう Me.Name = Me.Cells(1, 1).Value 但し、空欄だったり、他のシートと重複するとエラーになります。 これを避けるには上記ステートメントの前にチェックを入れます。
お礼
実践できました。早速のご回答有難うございました。
補足
隣のシートのセルでも可能ですか?しかもそのセルは2つが結合しておりまして・・・。初心者すぎて、隣のシートのアドレスがきちんと書けていないのでしょうか?エラーが出てしまいます。。。お願いします。
お礼
出来ました! 有難うございました。本当に助かりました。