- 締切済み
エクセルでシート名を自動入力したい。
いつもお世話になります。 エクセルのシート名の入力について質問です。 「A1」に「あああ」と入力したらシート1の 名前が「あああ」となるようにしたい。 さらに「B1」に「いいい」と入力したらシート2の 名前が「いいい」となるようにしたい。 この質問が↓近いのですが、A1のみ? http://oshiete1.goo.ne.jp/qa2025849.html A1、B1、C1・・・・もしくは、A1、A2、A3・・・と 行で続いても列で続いてもいいのですが・・・ 更にもう一つ質問がございます。 別のシートに連番を割り振ることは、可能でしょうか? 例えばシート1~シート20まで有るとします。 シート1のセルA5に「101」と数字を入力し シート2のセルA5には「102」、シート3のセルA5には「103」と 連番を一挙にコピーできますでしょうか? どうぞ宜しくお願い致します。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- zap35
- ベストアンサー率44% (1383/3079)
A1、B1、C1…に入力された値をシート名にするマクロです。 シート名を入力するシートの「シート名タブ右クリック」→「コードの表示」で開く画面に貼り付けてください。シートに戻り値を入力するとシート名が変わります。 入力した列に対応するシートがないときや、シート名に使用できない値を入力したときはエラー表示しています Private Sub Worksheet_Change(ByVal Target As Range) On Error GoTo err0 If Target.Row = 1 Then If Target.Column > Worksheets.Count Then MsgBox ("対応するシートがありません") Else Worksheets(Target.Column).Name = Target.Text End If End If Exit Sub err0: MsgBox ("入力したシート名が不適切です") End Sub 以下は後半部分のマクロです。こちらのマクロはALT+F11でVBE画面を開き、「VBAProjectエクスプローラのシート名右クリック」→「挿入」→「標準モジュール」で表示される画面にペーストして下さい。実行はシート画面に戻って、ALT+F8を押してマクロ一覧からマクロ名(Macro2)を選択して実行します。(実行は手動です。値を入れても自動では動きません) 連番の開始値を入力するシート名、セルアドレスは実際のものに変更してください。なお連番は整数値を想定しています。 Sub Macro2() Dim idx, cnt As Integer Const sh As String = "aa" '連番のスタートを入力するシート Const adr As String = "A5" '連番を入力するセル If IsNumeric(Sheets(sh).Range(adr).Value) Then cnt = Sheets(sh).Range(adr).Value For idx = 1 To Worksheets.Count If Sheets(idx).Name <> sh Then cnt = cnt + 1 Sheets(idx).Range(adr).Value = cnt End If Next idx Else MsgBox ("開始値が数値ではありません") End If End Sub でも質問の内容は「例えばこのセルに値を入力したら」という書き方ですから、たぶんこのままでは使えないかもしれませんね。その場合はご自身で修正をお願いします。
- skyresort
- ベストアンサー率63% (21/33)
これは、マクロという機能を使用します。 マクロとは、特定の操作手順を登録しておいて自動化する機能だと思って下さい。 今回のケースだと、A1の内容をシート1の名前に、B1の内容を・・・と、繰り返し行う処理を登録しておいて、一括処理するということです。 プログラムの記述にはVisual Basic Ediorを使います。 対象のファイルを開き、「ツール→マクロ→Visual Basic Edior」 これでEditor画面が開きます。 次に、editor画面の「挿入→標準モジュール」 これで記述するメモ帳のようなものが表示されます。 Sub シート名入力 と入力し、Enterを押してください。自動で、End Subと表示されます。 Sub ~ End Sub の間に、先ほどのプログラムを入力して下さい。 連番入力も同じように行って下さい。 次に、Editor画面を閉じます。 Excelの通常の画面に戻ったら、「ツール→マクロ→マクロ」 シート名入力と、連番入力が表示されているので、任意の題名を選び、実行。 これで完成です。
- skyresort
- ベストアンサー率63% (21/33)
No1の者です。補足です。 (1)シート名の入力 使えない文字列が含まれる可能性がある場合には、エラー処理も必要になるので注意して下さい。 (2)連番入力 10 & i ですと、101~109までしか使えません。 100 + i の方が良いです。
- skyresort
- ベストアンサー率63% (21/33)
シート名の入力 Dim i As Integer For i = 1 To Worksheets.Count If ActiveSheet.Cells(1, i) <> "" Then Sheets(i).Name = ActiveSheet.Cells(1, i) Else Exit For End If Next i 連番入力 For i = 1 To Worksheets.Count Sheets(i).Range("A5") = 10 & i Next i
補足
この内容をどの画面でどのように入力すれば良いのか 解りません。 操作方法を教えていただけますでしょうか?
補足
回答ありがとうございます。 A1,A2,A3・・・と入力していく 場合には、どのようにすれば よろしいでしょうか?