• 締切済み

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

エクセルで 作業シートを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/17069)
回答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

専門家に質問してみよう