• 締切済み

エクセル シートを呼び出して表示させる

エクセルで 作業シートをsheet1とした場合 sheet1 の A1のセルに  2 と入力した場合sheet2の「データーシート2」を表示 3 と入力した場合sheet3の「データーシート3」を表示 させたいです sheet数は20枚ぐらいあります。 教えて下さい

みんなの回答

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.5

#2さんの回答をそのまま微調整。 こういうことではないの? とは言っても、マクロの自動記録ぐらいは覚えて欲しいし、そもそもシート移動をシートタブでやるのと、山田とか入力するのとでほとんど変わらないと思いますけどねぇ・・・ Private Sub Worksheet_Change(ByVal Target As Range)  If Target.Address <> "$A$1" Then Exit Sub  On Error GoTo line  Sheets(Target.Value).Activate  Exit Sub line:  MsgBox "そんなシート無いです!" End Sub

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.4

#2のmerlionXXです。 > 作業シートを表示する  と言うイメージです 作業シートのA1に数値を入れるならすでに作業シートが表示されているのではないですか? Sheet2 データーシート2 と > 山田  田中 佐藤 ~~~~など の関係がぜんぜん見えません。

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

>「データーシート2」を表示 多分知らないのだろうが、関数ではできませんよ。 シートを開くことは、関数では出来ない。関数では指定したシートのセルの値やそれを加工した値しか出せません。 VBAの知識が必要です。 VBAコードをここに挙げるべきかどうか迷う。 イベントというものの理解やその他VBAの経験が要る。 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$A$1" Then a = Array("", "Sheet1", "Sheet2", "Sheet3", "sheet4", "Sheet5") Worksheets(a(Target)).Select End If End Sub ("", "Sheet1", "Sheet2", "Sheet3", "sheet4", "Sheet5")の””の中に実際のシート名を入れて修正してください。増やす場合は "Sheet5"の後にカンマをいれ、””で囲んだシート名を追加してください。 ーーー 関数でやれる、質問に近いものに A1に2,3,4・・のどれかを入れる。 B1に 式 =HYPERLINK("#Sheet"&A1&"!A1","とび先") と入れる。 A1に数字を入れた後に、B1をクリック。 4と入れてB1をクリックすると、Sheet4が開く。

yakan2
質問者

補足

imogasiさん ありがとうございます 他でも書いたように シート名に名前を入れて使っています 関数で呼べると思い 質問いたしました。 詳しい説明ありがとうございます。

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.2

表示させるとは、そのシートをアクティブにするという意味ですね? データーシートの次の番号は全角なんですね? なら、以下を試してみてください。 1.シートのタブを右クリックし、「コードの表示」を選択。 2.出てきたVisualBasicEditor(白い部分)に下記のコードをコピペ。 '*****ここから下をコピペ***** Private Sub Worksheet_Change(ByVal Target As Range) Dim x As Worksheet If Target.Address <> "$A$1" Then Exit Sub On Error GoTo line s = "データーシート" & StrConv(Target.Value, vbWide) Set x = Sheets(s) x.Activate Exit Sub line: MsgBox "そんなシート無いです!" End Sub '*****ここより上までをコピペ***** 3.AltキーとF11キーを同時に押してワークシートへもどります。 これでA1セルに数値を入力してみてください。 もし、データーシートの次の番号が半角なら s = "データーシート" & StrConv(Target.Value, vbWide)を s = "データーシート" & StrConv(Target.Value, vbNarrow)に変えてください。

yakan2
質問者

補足

とても早い回答ありがとうございます 説明不足で いや いい加減な質問方法ですみません シートには 各々名前を付けてあり 山田  田中 佐藤 ~~~~など 作業シートを表示する  と言うイメージです

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.1

A2セルにでも(データシート2がそれぞれのシートのB1として) =INDIRECT("Sheet"&A1&"!B1") シート名が Sheet1 Sheet2 ・・・ の場合です。

関連するQ&A

  • エクセルの全シートのデータ反映について

    エクセルについて質問があり、投稿させて頂きました。 わかる方がいましたら、回答をお願いします。 表示用シートと入力用シートがあります。 表示用は必ず1シート、入力用は毎回シート数が異なり、シート名も変わります。 この場合、入力用シートに入力したデータを表示用シートに表示するには、どういう関数を使えば良いのでしょうか。 参照すべき入力シートのデータのセルは、どのシートも一緒です。 例) 入力用シートの、それぞれB4セルを、表示用シートのA1~A4セルに表示する。 今回はA、B、C、Dの4つの入力用シートだったが、次回はE、F、G、H、Iの5つの入力用シートになる。

  • 【エクセル2003】隠しフォルダならぬ隠しシートはどうすれば作れるのでしょう?

    こんばんは。 ある人からエクセルのデーターを貰ったのですが、?という ような小技を使っていて、その小技はどうやってやるのか 知りたいのです。 その表は、1枚のシートからできていて、入力した数字に 誤りがあれば、注意を促す文章が吹き出しに出てくるというものです。 仮に一枚目のシート名を“1”とします。 そのシートのA1セルとA2セルの入力の合計が100を超えると、 吹き出しに「合計100を超えた数字は入力できません」と 表示がでます。 そこで、そのその吹き出しはどこを参照して、警告文を出している のか、参照先をみると“データ!”というシートを参照して、 入力の合計数に誤りがないかを演算の末、“データ!”にあらかじめ 準備された警告文を、合計数の多寡により判断し、”データ!” のシートから文書を参照してきて、適宜エラーメッセージを 表示させているようです。 しかし、表示されているシートは“1”とうシートのみで “データ!”というシートは見つかりませんでした。 この”データ!”とういシートは「隠しシート」になっているような きがします。 一部のシートをどうやって意図的に隠しシートにできるのか? 隠しシートがあれば、どうやったらそのシートが見られるか? ご教授いただければ幸いです。

  • シートの非表示について

    マクロを始めたばかりで解読はできるのですが、まだまだ自分で文書を作ることが出来ません。どなたか教えて下さい。 (1)まず、A,B,C,Dのシートを作ります Aシート = 入力シート Bシート = 入力シートで入力したデーターを表にして表示されるシート Cシート = 入力シートのセルA1~A15までのデーターがCシートのA1~A15に表示されるシート Dシート = 入力シートのセA16~A30までのデーターがDシートのA1~A15に表示されるシート (2)マクロボタン『非表示』を押す (3)シートが下記のように非表示される Aシート = 表示 Bシート = 表示 Cシート = シートのセルA1に入力があれば表示、無ければ非表示 Dシート = シートのセルA1に入力があれば表示、無ければ非表示 (If Sheets("Cシート").Range("A1").Value <> "" Then)みたいな というマクロを作りたいのですが。

  • エクセルのシートについて

    エクセルでシート数を指定して挿入するマクロはどうやって作ったらいいでしょうか。 例えばA1セルに挿入したいシートの数を入力するとその数のシートが作成されるというようなマクロを作りたいのですが・・・

  • エクセル シートのリンク

    エクセルの一つのシート(印刷用)に複数のシートからのデータを数式を使い反映できるようにしています。 あるシートに、AまたはCと入力するか、空欄のままにしておき、印刷用のシートにAかCを返すとともに空欄のセルにはBと入力できるようにします。この作業を1期、2期、3期と三回くり返します。1期を入力した場合には、2期3期の部分が空欄のままになり、2期を打ちはじめると印刷用のシートの2期の表にA,Cはそのまま返し空欄のセルにはBが返るようにできないものでしょうか。今の状態は2期3期を入力しないままにしておくと当然印刷用のシートにはBが表示されていまいます。できたらマクロを使いたくないのですが。いい方法があれば教えてください。

  • エクセルのシートを並べ替え。。。。

    エクセルのシートを並べ替えた時に、データーをリンクさせるにはどうすればよいですか。例えば・・シートA・B・Cの順で3つ並んでいる時 シートAのセルに1 シートBのセルに2 シートCのセルに3 と入力して シートの並び順をB・C・Aと変えたときに シートBのセルに1 シートCのセルに2 シートAのセルに3と表示させたいのですが。 よろしくお願いします。

  • エクセルでシート1からシート2へフォントごとコピーしたい

    sheet1のA1セルの文字やデータをsheet2のA1セルへコピーするときシート2のA1セルに"=sheet1A1"と入力していますが、シート1のA1セルのデータを赤字入力してもシート2には黒字でしかコピーされません。これをシート1と同じ色でコピーする方法はありますでしょうか。よろしくお願いします。使用パソコンはウインxp、エクセル2000です。よろしくお願いします。

  • エクセルで別シートのデータを表示する件

    エクセルで別シートのデータを表示する件 「名簿のシート」(1)があります。 左側から「名前」、「住所」、・・・とデータが入ってます。 「別のシート」(2)で書類を作りたいのですが、(1)のシートからデータがうまく反映されません。 例えば、 (1)の「A1」に「浦島太郎」とあります。 (2)の「B1」は、「セルの書式設定」の「ユーザー定義」で「@_ "様"」としています。 (2)の「B1」に「浦島太郎 様」と表示させたいので「=(1)!A1」と入力しても、「=(1)!A1 様」と表示されてしまいます。 エクセルのバージョンは2002です。 よろしくお願いします。

  • エクセルでシート間の参照がされるところされないところがあるんです。なぜ?

    こんにちは。 エクセルで,Sheet1のセルにSheet2のセルを参照しようと思います。 Sheet1のA1のセルに,Sheet2のA1のセルを参照しようとした場合,=Sheet2!A1と入力することになると思います。 しかし,セルには,「=Sheet2!A1」と表示されてしまうのです。 他のセルには,参照された文字,数字が入っているのに,ある特定のセルだけは,上記のようになってしまいます。 どのようにすれば解決できるのでしょうか。 お教え頂ければ幸いです。 宜しくお願いいたします。<(_ _)>

  • エクセルで他のシートの値が反映されず、式が表示されてしまいます。

    エクセルで他のシートの値が反映されず、式が表示されてしまいます。 例えば、「Sheet2」の「C3」セルに「=sheet1!A1」と入力しておき、通常ならSheet1のA1セルに値を入力した場合、Sheet2のC3セルの値もA1セルと同じ値が表示されると思いますが、Sheet2のC3セルの表示が「=sheet1!A1」のままです。 何か設定を変更しなければならないのでしょうか? 因みに、同じファイルの他のシートは問題なく他のシートで入力した値を反映してます。値がうまく表示されないシートは別のファイルからコピーしてきたシートです。

専門家に質問してみよう