• ベストアンサー

Excelのシート名を任意のセルの情報にする

tom04の回答

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.3

こんにちは! >例えばA1に「東京都」と入力すると、Sheet2のタブに「東京都」と反映され、B2に「大阪府」と入力すると 入力するセルに規則性がないとなんとも致し方ないのですが・・・ A1 → B2 セルではなく、 A1 → B1 → C1 ・・・と1行目に入力するとします。 画面左下の「Sheet1」またはSheet見出しの一番左側のSheetが入力用のSheetとします。 そのSheet見出し上で右クリック → コードの表示 → VBE画面に ↓のコードをコピー&ペーストして1行目にSheet名にしたいデータを入力してみてください。 Private Sub Worksheet_Change(ByVal Target As Range) 'この行から Dim k As Long, cnt As Long, myFlg As Boolean If Application.Intersect(Target, Rows(1)) Is Nothing Or Target.Count <> 1 Then Exit Sub With Target cnt = .Column + 1 If .Value <> "" Then For k = 2 To Worksheets.Count If Worksheets(k).Name = .Value Then myFlg = True Exit For End If Next k If myFlg = True Then MsgBox "同じシート名が存在します" & vbCrLf & "別のシート名を入力してください。" .Select Exit Sub ElseIf cnt <= Worksheets.Count Then Worksheets(cnt).Name = .Value Else Do Until Worksheets.Count = cnt Worksheets.Add after:=Worksheets(Worksheets.Count) Loop Worksheets(Worksheets.Count).Name = .Value End If End If End With Worksheets(1).Activate End Sub 'この行まで ※ あくまで一案です。m(_ _)m

nosunosu
質問者

補足

有り難うございます。 ぴったり意図通りです。実装にもう少しお知恵をお借りするかもしれないので、お礼入力はもう少しお待ちください。

関連するQ&A

  • 《エクセル2000》任意のセルに、他のシート名を反映させるには?

    任意のセルに、他シートの例えばA1セルを参照させたい時は =シート名!A1 とすれば、そのセルの情報が反映されますが、別シートのタブに入力されている名前そのものを任意のセルに表示させるにはどうすればいいのでしょう? (過去の質問をチェックしてみましたが、似て非なる質問が多数ヒットしてしまい、挫折しました)

  • エクセル関数 シート名をセルに反映させたい

    シート名をセルに反映させたいのですが,以下のようなことができるでしょうか。 =CELL("filename",A1)を使えば,シート名を反映させられるようであることは,ネットで調べて分かったのですが,たとえば,シート2を作成した時に,シート1のA2のセルのところに,自動でシート2の名前を入力できるような関数はありますか?その後,シート3を作成した時に,同様にシート1のA3のところに自動で入力したいのですが,そのようなことが可能でしょうか。 説明が下手で申し訳ないのですが…

  • エクセル Sheet1 セルで入力したものをSheet2のセルへ

    エクセルのSheet1のセル(例えばB1)に入力した文字を、 Sheet2のセルの任意のセル(例えばA5)に自動で表示させるには どうすればいいのでしょうか?  Sheet2のA5のセルの中で、=Sheet1!B1 と入れても「0」に なるだけで・・・エクセルの何の機能を使えばいいのか全然分かりません。よろしくお願い致します。

  • エクセル・特定のセルの入力をシート名に反映する

    題名のとおりですが、特定のセルの入力内容をシート名に反映することはできませんか? マクロでできることは知っています。 社内文書にマクロをつけると嫌がる人がいます(理由は不明……) できれば、関数でなんとかならないでしょうか? 逆にシート名をセルに反映する関数&マクロは分かるのですが セルの内容をシート名に反映する関数、というのが見つかりません どなたか教えてください。

  • 【エクセル】シート1の複数セルをシート2に反映

    エクセルについて、教えて頂きたいです。 まず添付のエクセル画像を見て頂けますでしょうか。 <質問内容> まず添付画像は左側の「シート1」と、右側の「シート2」の2つから成っています。 シート1のA2セルは、ご覧の通り入力規則による「リスト」になっておりまして、 「A」「B」「C」の3つからプルダウン選択できるようになっています。 この状態でやりたいことがあるのですが、 例えばここで、 シート1のプルダウンで「B」を選択したとき、 シート2の「B」の行「B3、C3、D3セル」を自動的に参照して、 シート1の「B2、C2、D2セル」に「200 600 1,100」の数字が反映される方法を、 教えて頂けませんでしょうか。 ぜひとも宜しくお願いします(m_ _m)  ※ちなみに、シート名を「A」「B」「C」と記載してINDIRECT関数で反映させる方法は   存じておりますが、シートを1つに収めたいと思っております。

  • エクセルのセルの値をシート名にするマクロ

    エクセルで、例えばB2セルに入力された数字を使って自動でシート名にしたいのですが、(=そのセルの値が変更されたときに 自動的に シート名が変更されるマクロ )どうやったらよいのか良くわかりません。また、重複するシート名があった場合にはアラートを表示させたいです。 例: 1.B2セルに10と入力する 2.もしシート名に重複が無ければ、シート名が自動的に「10月」になり、アクティブセルはB2に戻って復帰する。 3.重複がある場合は「シート名に重複があります」等のアラートを表示して終了する 多分 イベントとかいうものが絡んでくるのでしょうが、マクロは時々使うのですが、いつも記録したものを手直しする程度なので、標準モジュールの部分しか触った事がありません。 どなたか教えてください。お願いします。

  • エクセルでセルに入力した数字を指定したSheetの指定したセルに反映できますか

    http://okwave.jp/qa4814381.html で質問したものです。 例として「Sheet1」のセルA1に「1111」と入力しB1に「故障」、C1に「日時」を、D1に「担当者名」を入力すると、Sheet名「1111」のB18に「故障」C18に「日時」D18に「担当者名」が反映。 その後は入力していけば、B、C、Dの19~と下に反映していく方法を教えてください。 反映させるセルは「B18」を始まりとして、そのセルに内容、「C18」に日時「D18」に担当者の名前を始まりとしたいです。

  • エクセルで選んだセルによって文章を反映させる

    たびたびお世話になります。 エクセルでシート1にA,B,C,Dの4個のセルがあり このどれかに会社名又は個人名が入ります。 (必ず一つです) 毎回コピペでシート2のEのセルに反映させてますが どれかに入力したら自動的にシート2に反映させる方法は ないでしょうか? おわかりになる方ご教授下さい。

  • エクセル、別シートへ情報の移し方

    エクセルでこんなことは出来ますでしょうか。。。 Sheet1   名前 電話番号    住所 1 田中 03-1234-5678  東京都東京区東京11111  2 鈴木 03-1234-5678 東京都東京区東京11112 3 小林 03-1234-5678 東京都東京区東京11113 4 斎藤 03-1234-5678 東京都東京区東京11114 5 清水 03-1234-5678 東京都東京区東京11115 6 中村 03-1234-5678 東京都東京区東京11116 という表があったとしてSheet1は自分で入力をします。 上記の左の番号をいずれかに入力するとSheet2の別の表に個々の名前や電話番号等の情報を一気に反映させることは可能でしょうか。 「=Sheet1A1」等を入力すると別のシートに反映されるという情報はあったのですが、 それでは毎回「A1」の部分を変えなくてはいけないので違うなと思い方法があれば教えていただきたいです。 言葉足らずでわかりずらい部分がありましたら申し訳ございません。。。

  • セルと同じシート名のシートを探す

    vb初心者です。 よろしくお願いします。 シート名AのセルB3に入った文字と同じシート名を探させたいと思います。 例えば シートAのB3に"万円"と入力された場合、 "万円"シートをアクティブにするという感じです。 よろしくお願いします。