プロが教えるわが家の防犯対策術!

エクセルで 作業シートをsheet1とした場合
sheet1 の A1のセルに 

2 と入力した場合sheet2の「データーシート2」を表示
3 と入力した場合sheet3の「データーシート3」を表示
させたいです

sheet数は20枚ぐらいあります。

教えて下さい

A 回答 (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
    • good
    • 0

#2のmerlionXXです。



> 作業シートを表示する  と言うイメージです

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

>「データーシート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が開く。

この回答への補足

imogasiさん ありがとうございます

他でも書いたように シート名に名前を入れて使っています

関数で呼べると思い 質問いたしました。

詳しい説明ありがとうございます。

補足日時:2008/07/02 15:13
    • good
    • 0

表示させるとは、そのシートをアクティブにするという意味ですね?


データーシートの次の番号は全角なんですね?
なら、以下を試してみてください。

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)に変えてください。

この回答への補足

とても早い回答ありがとうございます

説明不足で いや いい加減な質問方法ですみません

シートには 各々名前を付けてあり

山田  田中 佐藤 ~~~~など

作業シートを表示する  と言うイメージです

補足日時:2008/07/02 14:57
    • good
    • 0

A2セルにでも(データシート2がそれぞれのシートのB1として)


=INDIRECT("Sheet"&A1&"!B1")
シート名が
Sheet1
Sheet2
・・・
の場合です。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!