• ベストアンサー
  • 困ってます

エクセル:シート名を手入力でなく、セル「A1」の文字を出したい。

いつもお世話になります。 エクセルのシート名についての質問です。 いつもはシート名を変えるとき、シートタブの上を右クリックして「変更」しています。 ◆そこで、 (1) セル「A1」に入力されてある文字を自動で出す (2) もしくはマクロボタンを押すと「A1」に入力されてあるものが「シート名」として変わる というようにしたいのですが、その方法について教えてください。よろしくお願いいたします。

共感・応援の気持ちを伝えよう!

  • 回答数3
  • 閲覧数2583
  • ありがとう数11

質問者が選んだベストアンサー

  • ベストアンサー
  • 回答No.3

こんにちは。 (1)の場合は、下記のコードを ThisWorkbook に記述してください。 どのワークシートでも機能します。 Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) If Target.Address = "$A$1" Then Sh.Name = Target.Range("A1").Value End Sub (2)場合は、下記のコードを標準モジュールに記述しボタンにマクロ登録してください。 (すべてのシートにボタンを貼り付けるのは面倒でしょうから、ツールバーにボタンとして追加すると良いと思います。) Public Sub SheetName() ActiveSheet.Name = Range("A1").Value End Sub

共感・感謝の気持ちを伝えよう!

質問者からのお礼

GreatDragonさん、ありがとうございました。 最高のお答えをいただきました。 (1)は、すべてのワークシートに機能する点で、そこまでできるとは思ってなかったので驚きとともにうれしく使わせていただきます。 (2)についても感謝です。 本当にありがとうございました。

関連するQ&A

  • シート名を手入力でなく、セル「A1」の文字を出しい

    過去にも、同様見出しでの質問が出ています。私は、この続編を教えて頂きたい。本文後半に【私の質問】として掲示致しました。 ≪以下、引用≫ :エクセルのシート名についての質問です。 いつもはシート名を変えるとき、シートタブの上を右クリックして「変更」しています。 ◆そこで、  セル「A1」に入力されてある文字を自動で出す方法について教えて下さい。 http://okwave.jp/qa/q2025849.html?from=history ベストアンサー: (1)の場合は、下記のコードを ThisWorkbook に記述してください。 どのワークシートでも機能します。 Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) If Target.Address = "$A$1" Then Sh.Name = Target.Range("A1").Value End Sub ≪引用終了≫ 【私の質問】 確かに、"A1"に直接文字を入力すると、この記述でOKです。 ところが、"A1"に、他のセル等からの参照が入っている場合、例えば、=B5&"年"&B7&”月現金”となっているとき、"A1"の内容をシート名に反映することができません。 コード内容をどのように修正すればよいのでしょうか、ご教授下さい。

  • excelにて  シート1のA1セルにA1と入力し

    excelにて  シート1のA1セルにA1と入力したら、別シートのA1にあらかじめ書いてある文字を表示させる方法がわからない 自動的に他のシートのセルを参照させる方法はわかるのだが・・・すみませんどなたか・・お願いします

  • エクセルのマクロ シートタブ名をA1に表示するには?

    エクセルのマクロの質問です。 シートタブ名を、そのシートの「A1」のセルに書き込みたいのですが、 どのようにマクロをくめばよいでしょうか? Excel2002です。 よろしくお願いいたします。

その他の回答 (2)

  • 回答No.2
  • zuntac
  • ベストアンサー率36% (45/124)

イベントを使うと、自動的にマクロが実行されます。 以下のマクロをSheet1に書いておけば、A1に値を書き込むだけでシート名が設定されます。 Private Sub Worksheet_Change(ByVal target As Range)   ActiveSheet.Name = ActiveSheet.Range("A1") End Sub

共感・感謝の気持ちを伝えよう!

質問者からのお礼

zuntacさん、ありがとうございました。 各シートのコードに書き込めば、シート名が変わりました。感謝申し上げます。

  • 回答No.1
noname#123709

こんな感じでしょうか? Sub test() On Error GoTo MB ActiveSheet.Name = ActiveSheet.Range("A1").Value MB: MsgBox "セルが空白かシート名に使用できない文字があります" End Sub

共感・感謝の気持ちを伝えよう!

質問者からのお礼

SuperMildさん、ご回答ありがとうございました。 せっかくのご回答に、ポイントを発行できなくてごめんなさい。後続の方のご回答の内容が私の質問により、的確でしたのでお許しください。 シート名はマクロ実行で確かに変わりました。ありがとうございました。 ただ、毎回メッセージボックスが出てきてしまいます。この点私の理解(勉強)不足ならお許しください。理解に達しませんでした。 それにしても早速のご回答を心より感謝申し上げます。^^

関連するQ&A

  • Excel 同ブックの他シートを参照するセルを、他ブックのセルにコピー

    こんにちは。Excelの使い方について質問させていただきます。 よろしくお願いします。 Excel2003を使っています。 シート数、シート名がまったく同じブックが2つあります。 AブックのAシートのA1セルを参照しているセルである AブックのBシートのA1セルをコピーします。 BブックのBシートのA1セルにペーストします。 BブックのAシートのA1セルを参照して欲しいのですが、 別ブックであるAブックのAシートのA1セルを参照するように 自動的に変換されてしまいます。 シンプルにそのままコピーすることは不可能でしょうか。 セルのコピーでは無く、中の文字列を選択してコピーしても、 何が起こっているのかよくわかりませんが上手くいきません。 Excel初心者です。マクロはまったく使えません。 親切な方、どうぞよろしくお願いします。

  • エクセルで、文字列の入ったセルを他のシートへ自動的に入るようにしたいのですが・・・

    エクセルで、文字列の入ったセルを他のシートへ自動的に入るようにしたいのですが・・・ 例 シート1のA1セルに「○○会社」と入力 自動的にシート2のA1にも同じ「○○会社」が入力される。

  • (Excel)あるセルに文字を入力しただけで、同じブック内のほかのワークシートにも、同じ文字が自動的に入るようにするには?

    こんにちは。 質問内容はタイトルのとおりです。 あるワークシートのあるセルに文字を入力すると、ほかのワークシートのセルにも同じ文字が自動的に書き込まれる方法を知りたいです(ブックは同じ)。複数のワークシートを制御するには、やはりマクロを使うのでしょうか? よろしくお願いします。

  • Excel2010でセルに画像を呼び出す

    Excel2010にシート1とシート2があります。 記入・印刷用シートはシート2とします。 シート1のA1セルに50pixel×50pixelの画像(png)を置きます。 シート2のA1セルに何か数字や文字が書かれた時に、 [マクロを使わずに] シート2のB1セルに、シート1のA1セルにある画像を表示させるにはどうしたらいいですか? 上記ができない場合、シート2のB1セルにドロップダウンリストを作成して、 シート1のA1セルの画像を呼び出すことは可能ですか? ------------------------ Windows7 64bit Excel2010 64bit ------------------------

  • セル内で文字が折り返されてしまう(EXCEL2003)

    今回の場合は、WORDで書いた文字を コピーしてEXCELのセルに貼り付けたところ 1つのセル内に折り返されて表示されてしまいます。 セル幅を手動で広げればいいのですが、 今回は、新規で入力したときのように、隣のセルにはみ出る形にしたいと思っています。 (ちなみに手動での列幅は広げるのはできますが ダブルクリックの自動調整もききません。) そういうものなんでしょうか? いくつかありますので、WORDで書かれた文字をEXCELに貼り付け られるのが理想なのですが・・・。 隣のセルにはみ出した形の表示に変更するにはどうしたらいいでしょうか? セル→配置タブのところはみてみたのですがわかりません。 よろしくお願いします。

  • 別シートのセルの文字をシート名に自動で変更

    いつもありがとうございます。 下記の添付の「勤務表」のシートのA4の日付を変更すれば、「Sheet1」のシート名も自動的に変換できるようにとネット検索で見つけてきた下記のマクロ(?)の記述をセル名を変えてコピペし、「勤務表」のシートのA4の日付を変えて見たのですが、何の変化もありません。エラーメッセージも出ません。 Private Sub Worksheet_Change(ByVal Target As Range) On Error GoTo ERR_HANDLER If Target.Address(False, False) = "勤務表!A4" Then ActiveSheet.Name = Range("勤務表!A4").Value End If Exit Sub ERR_HANDLER: MsgBox "現在のセルの値はシート名にできません。" End Sub 「勤務表」のシートのA4以下は、B1とE1の数値から自動で一ヶ月分の日付を入れる関数を入れて日付を作成しています。 =IF(DATE($B$1+1988,$E$1,ROW(A21))>DATE($B$1+1988,$E$1+1,20),"",DATE($B$1+1988,$E$1,ROW(A21))) 念のため、「Sheet1」内のA1でシート名が変わるかどうか試してますと、直接入力した文字の場合、シート名が入力した文字に問題なく変わりますが、関数で呼び込んだ文字は「現在のセルの値はシート名にできません。」のエラーメッセージが返って来ました。 このことから、関数で呼び込んだ文字では、シート名の自動変更はできないのが判りましたが、「勤務表」から呼び出した場合、エラーメッセージも出ないところを見ると、そのことの対処だけでは、解決しないような気がしています。 色々、ネットで検索したりもしましたが、未熟な私の知識と経験では、行き詰ってしまいました。 関数で呼び込んだ別シートのセルの日付で、シート名が自動で変更できるように、 お助け頂けないでしょうか? 当方はエクセル2010を使用しております。 よろしくお願いいたします。

  • セル内に入力した文字をシート名にするマクロ

    セル内に入力した文字をシート名にするマクロの方法を探しています やりたいことは以下のようなことなのですが http://www.excel.studio-kazu.jp/kw/20021007161409.html 上記のアドレスが若干似ているんですがやりたいこととは少し違います A1 ヤマダ A2 こじま A3 123456 A4 abcde とセル内に入力されている文字を シート名にしたいです A1~A4まで一度に選択して選択した数だけ この場合はA1~A4までなので四枚新しくシートを作り 新しく作ったシートにA1~A4のセル内の文字をシート名に上から順番に A1から左寄せにしたいです

  • エクセルでマクロにてセル色と文字を他シートのセルへコピーしたい

    他質問者様へのご回答を検索し、自分なりに挑戦してみましたがVBA初心者の為うまくいかず、どなたかご指導いただけないでしょうか。 現在エクセルにて、sheet1のA1からA5000のセルに入力した文字と色(他書式は必要ありません)をsheet2のF1からF5000へ自動でコピーという動作を何ヶ所かしたいのですが、マクロのコードを教えて下さい。 お時間のある方、どうぞ宜しくお願いします。

  • セル内の文字をシート名として使いたい。

    Excel2000または2002です。 セル内の文字例えばA1に「あいう」と入力されていたら その「あいう」というのをシート名として使うことはできますか? VBAでよろしくお願いします。

  • EXCEL◆入力した文字列を別シートへ自動でコピー

    エクセルについてです。 例えば、Sheet1のA1セルに「みかん」と入力した時に、自動的にSheet2のA1セルにも同じく「みかん」という文字がコピーされるようにしたいです。 この場合、Sheet2のA1セルに 「=Sheet1!A1」 と入力すればコピーされるのは知っているのですが、これだとSheet1のA1セルに何の文字も入力されていない場合、Sheet2のA1セルに「0」と表示されてしまいます。 Sheet1のA1セルに何も入力されていない場合、Sheet2のA1セルにも同じく何も表示されない方法を教えて頂けませんでしょうか? 以前会社のエクセルファイルでそのような関数が入力されており、多分VLOOKUP関数が使われていたように思うのですが、そのファイルがなくなってしまった為、確認が出来なくなってしまいました。 こういったシートを作る目的としては、Sheet2が印刷する為のシートなのですが、入力箇所が列も行もバラバラの為、いちいちそのセルをクリックして入力していると時間がかかる為、Sheet1を入力専用シートにしたいからです。 自分なりに調べてみましたが、似たような質問が見当たりませんでした。