• ベストアンサー

セルのデータをマクロでシート名に反映させる方法は?

大変お世話になります。 Excelのセルに入力したデータをシート名に反映させたいのですが、 前回、QNo.3861407にて質問させてもらった時の回答は、 セルに入力するシートでしか反映されなかったのです。 それを、Sheet1に記載したデータをSheet2のシート名にも 反映させることは出来ますでしょうか? 下記式のActiveSheet.Name の部分をSheets(Sheet2).Select としてみたり、 色々調べて試してみたのですがうまくいきません。 前回にご回答頂いたマクロは下記の式です。 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$A$2" Then ActiveSheet.Name = Range("A2").Value & "年度休日" End Sub 上記式だと、 そのシート自体のA2に入力してエンターを押せば、 シート名も反映されて変わるのですが、 変更したいシートが2枚ある為、 その2枚を同時に変更する方法を知りたいのです。 詳しく説明すると、 勤怠表を作成する際、 別シートに休日カレンダーを作り、 勤怠表に休日が反映されるようにしているのですが、 休日カレンダーが正社員用と契約社員用の2枚あり、 その休日カレンダーの一方のシート(シート名「正 2007年度休日」)の A2に2007と入れたときに、 もう一方のシート(シート名「契 2007年度休日」)も一緒に 変更することは可能でしょうか? 契約社員用のほうは「正 ~」のA2をリンクさせて 「契 ~」のA2に2007と年数が入るようにしているので A2セルは「正 ~」のシートのA2の年数を 2007と書き換えると「契 ~」のシートのA2も変わるのですが、 上記のマクロだと、「契 2007年休日」のシート上のA2をダブルクリックして 再計算させないと、「契 ~」のシート名が変わりません。 これを、「正 ~」のシートのA2を書き換えた時点で 「契 ~」のシート名も変えることは出来ますでしょうか? 分かる方、お教え下さい。宜しくお願い致します。

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

  • ベストアンサー
  • suz83238
  • ベストアンサー率30% (197/656)
回答No.1

条件として「契2007年休日」のシートが2枚目のとき Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$A$2" Then ActiveSheet.Name = Range("A2").Value & "年度休日" Sheets(2).Name = "契" & Range("A2").Value & "年度休日" End Sub でOKです。 3枚目ならSheets(3).Nameです。一定してないなら、シート名の一覧を取得して、条件式をたて、シート名を変更することになります。シートの位置が固定なら、上記でOKです。

guchi_yama
質問者

お礼

お礼が遅くなり申し訳ありません。 上記のマクロ式で出来ました。 分かりにくい説明文でありながら、ご理解頂き恐縮です。 本当にありがとうございました。 また何かありましたら宜しくお願い致します。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

質問文が長い。 その割りにわからないことがある。質問内容に対し、回答者には、余分なことも多い。 2つのシート名はどういう名前にしたいのか、ぐらい例で質問の初めの方にはっきり書くこと。 後半は 当然同じシート名になるはず無いから、A2セルの値の前後に何か文字列を加えるのだろうがそれは何か? >変更したいシートが2枚ある為 >その2枚を同時に変更する方法 下行に並べて書くだけではないの。 ーーー シートの特定の方法を勉強すること ActiveSheet方式 Worksheets(1)方式 Worksheets(名前)方式 直接方式 例 Sheet1.Name しかない。 ーーー シート2枚はSheet2,Sheet3とすると Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Address = "$A$2" Then Worksheets("Sheet2").Name = "正2007年度休日" Worksheets("Sheet3").Name = "契2007年度休日" End If End Sub このシート名の中でA2セルの値はどの部分を決めるの。 上記は1回実行すつとSheet2というシート(名)などがなくなって エラーになるがどう考えているの。セルのChangeイベントに「するのは無理があるのでは? ーー 上記のようなことではないの? したいことを具体的に順を追って、はっきり書いてほしい。

guchi_yama
質問者

お礼

いつもお世話になります。 説明不足で申し訳ありません。 シート名は、もともと"Sheet1"から"正 2007年度休日"などに書き換えており お察しの通り、imogasiさんのマクロでやると、 新しいブックの状態(シート名がSheet1の時)からは出来たのですが、 "正2007年度休日"と変換した後は、 "正2008年度休日"に変えようと思ってもエラーが出てしまいました。 その辺の説明が疎かで、 且つダラダラと分かりにくい状態であったにも関わらず ご回答頂き、 本当にありがとうございました。 これに懲りず、何かありましたらまたご回答下さいますよう 宜しくお願い致します。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Excel セル入力データをシート名に反映させるには?

    大変お世話になります。 Excelにて、勤怠表を作成しているのですが、 休日表を作り、そのシート名を「2007年度休日」としています。 そして勤怠表のシート名「山田」(各個人名を入力)の各シートに リンクさせているのですが、シート「2007年度休日」の セルA2 部分に 2007 と入力しているデータを反映させて セルA2を書き換えるごとに シート名も一緒に変更出来ればと思うのですが 出来ますでしょうか? 分かる方、お教えください。宜しくお願い致します。

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

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

  • エクセルでシート名をセルに反映させる方法

    エクセルでシート名をセルに反映させる方法 いつも、ここでいろいろ助けられています。 セルにシート名を入れる方法はございますでしょうか。 どういうことかと言うと、同じフォームの表を、月別に作成していますので、毎回、その月の月度をシート内の月度を入力する位置および、シート名の欄に2回入力しています。 これを1回にしたく質問させていただきました。 エクセルのバージョンは「エクセル2007」です どなたかご存知の方よろしくお願いいたします。

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

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

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

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

  • 【エクセル】シート1のデータを他のシートへ反映したい

    エクセルのシート1のデータを他のシートへ反映させる方法を教えていただきたく思います。 (検索したのですが、自分の状況とは違っていてわからなかったので新たに質問させていただきます) 具体的には、 シート1のセルA1に日付を入力します。 そうすると、シート2~シート7のセルG4にもそのシート1のA1のデータが表示されるようにしたいのです。 そして、シート1のA1のデータを変更すると、 自動的にシート2~シート7のセルG4のデータも変更されるようにしたいです。 以前は、 =シート1!A1 という式で動いていたのですが、 なぜか急に、一度セルG4を指定してenterキーを押して確定してからでないと データが変わらなくなってしまいました。 自動的に反映されるようにするにはどうすればよいのでしょうか? よろしくお願い致します。

  • セルの反映

    Sheet1のA1からE5を結合し、文章を入力しました。 結合したセルに入力してある文章をを例えばSheet2のセルに反映するにはどうしたらいいでしょうか? よろしくお願いいたします。

  • セルからシート名を得る

    シート「メイン」のA列に、 1 2 3 4 とあって、シート「1」~「4」のA1セルに入力されているデータを、シート「メイン」の数字の横(B列)に表示させたいです。 B1に='1'!A1 B2に='2'!A1 ・・・などとやっていけばできますが、「メイン」のA列の数字をシート名に変換して式を書くことはできませんか? よろしくお願いいたします。

  • エクセルで、セルの日付をシート名にしたい

    セルA1に、別のブックのセルから=の式で引張って来た日付表示のデータ(H19.10.10)が入っています。 その日付を常にそのシート名に反映させるにはどうしたら良いでしょうか?宜しくお願いします。

  • セルの反映

    sheet1のA1に1234と入力してあります。 A2に5と入力してあります。 A3のセルにA1とA2のセルの情報を1234-5という表示で反映することはできるのでしょうか? 例 A1     A2      A3 1234    5     1234-5 よろしくお願いいたします。

円安で日本離れ
このQ&Aのポイント
  • 円安になると、外国人は日本では稼げないと言われています。なぜなのでしょうか?その仕組みについて知りたいと思います。
  • 円安が進むと、外国人は日本で働くことで得られる報酬が減少してしまいます。そのため、日本への魅力が薄れ、外国人の日本離れが進むのです。
  • 円安になると、日本国内での物価が上昇する一方で外国での物価は変わらないため、外国人にとって日本での生活費の負担が増えてしまいます。そのため、外国人は日本では稼げないと感じるのです。
回答を見る

専門家に質問してみよう