【初月無料キャンペーン中】gooドクター

いつもお世話になります。

エクセルのシート名の入力について質問です。
「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」と
連番を一挙にコピーできますでしょうか?

どうぞ宜しくお願い致します。

gooドクター

A 回答 (4件)

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

でも質問の内容は「例えばこのセルに値を入力したら」という書き方ですから、たぶんこのままでは使えないかもしれませんね。その場合はご自身で修正をお願いします。

この回答への補足

回答ありがとうございます。

A1,A2,A3・・・と入力していく
場合には、どのようにすれば
よろしいでしょうか?

補足日時:2007/05/02 15:11
    • good
    • 8

これは、マクロという機能を使用します。


マクロとは、特定の操作手順を登録しておいて自動化する機能だと思って下さい。
今回のケースだと、A1の内容をシート1の名前に、B1の内容を・・・と、繰り返し行う処理を登録しておいて、一括処理するということです。

プログラムの記述にはVisual Basic Ediorを使います。
対象のファイルを開き、「ツール→マクロ→Visual Basic Edior」
これでEditor画面が開きます。

次に、editor画面の「挿入→標準モジュール」
これで記述するメモ帳のようなものが表示されます。

Sub シート名入力
と入力し、Enterを押してください。自動で、End Subと表示されます。
Sub ~ End Sub の間に、先ほどのプログラムを入力して下さい。
連番入力も同じように行って下さい。

次に、Editor画面を閉じます。
Excelの通常の画面に戻ったら、「ツール→マクロ→マクロ」
シート名入力と、連番入力が表示されているので、任意の題名を選び、実行。

これで完成です。
    • good
    • 6

No1の者です。

補足です。

(1)シート名の入力
使えない文字列が含まれる可能性がある場合には、エラー処理も必要になるので注意して下さい。

(2)連番入力
10 & i ですと、101~109までしか使えません。
100 + i の方が良いです。
    • good
    • 5

シート名の入力



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

この回答への補足

この内容をどの画面でどのように入力すれば良いのか
解りません。
操作方法を教えていただけますでしょうか?

補足日時:2007/05/02 12:28
    • good
    • 2

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

gooドクター

このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング