- ベストアンサー
エクセル2003のシート名を変える関数
エクセル2003で A1セルに5月 といれると そのシート名が5月 になるような関数はありますか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
ワークシート関数では無理です。 ためしにVBAで作ってみました。 A1セルに入力すると同時にシート名がかわります。 以下の手順で設定します。 1. そのような設定をしたいシートのシートタブを右クリックして、[コードの表示]。 2. 出てきた右側の白い所に、下記のコードを貼付けます。 3. 一番右上の × でExcelの画面に戻ります。 '********これより下********** Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address <> "$A$1" Then Exit Sub Ret = Evaluate("='" & Target.Value & "'!A1") If Not IsError(Ret) Then MsgBox "同名のシートがあります。", vbCritical, "Σ( ̄ロ ̄lll) " Exit Sub End If On Error GoTo line Me.Name = Target.Value Exit Sub line: MsgBox "シート名に使用できない文字がはいっています。", vbCritical, "\(≧▽≦)丿" End Sub '********これより上**********
その他の回答 (2)
- BookerL
- ベストアンサー率52% (599/1132)
関数というのは、データ処理をして結果を返すものです。返った結果は、関数の記述されているセルに表示されます。関数の記述されているセル以外のところに結果を返すような動作はしません。 ご希望のことを実現するには、VBAを使います。 そのシートのタブ(シートの下の"Sheet1"とかあるところ)を右クリックして、 「コードの表示」をクリックします。 MicrosoftVisual Basic というウインドが 開くので、右側の真っ白けのところに次のコードをコピー・貼り付けをします。 '----------------ここから Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address <> "$A$1" Then Exit Sub Application.EnableEvents = False ActiveSheet.Name = Range("A1").Value Application.EnableEvents = True End Sub '----------------ここまで これで、そのシートの A1 に入れた値がシート名になります。 (シート名として許されない文字だとエラーになります。)
関数では無理です。 マクロなら、安直な方法ですが、下のコードを、WorkSheetに設定すればできます。 Private Sub Worksheet_SelectionChange(ByVal Target As Range) Sheet1.Name = Range("a1") End Sub