• ベストアンサー

別シートのセル参照

Excel(Win2000,Excel2002)で別シートのセルを参照する場合、シート名を入れると思うのですが、シート名を入れずに一つ右隣のシートというような指定をする事が出来ますか?記号などを使用して出来るのであれば方法を知りたいのですが。お願いします。

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

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

EXCEL勉強中の身です。No.2のnihonjinnさんの回答を 見ながら、自分でもやってみました。 nihonjinnさんの説明----    =CELL("filename",A1)    これでこのシートの情報が出てきます。指定する    セルはどこでもいいです。My Documentsにある    BOOK1のSheet1なら    C:¥My Documents¥[BOOK1.xls]Sheet1    となります。    これがB1にあるとするとC1に    =RIGHT(B1,LEN(B1)-FIND("]",B1))    と入れるとSheet1が抽出されます。 ----------------------- というのを、私レベルに解釈すると、 「以上のとおりに入力すると、 C1のところに、今現在触ってるシート名(=Sheet1)が、シート名を入力することなしに表示できます」ということで、ここまでは、オーケーかと思います。 問題は次の =INDIRECT("Sheet"&RIGHT(B1,1)+D1&"!A1") だと思うのですが、 ヘルプでは、「INDIRECT」で、しらべると、一応、この関数の説明が出てきます。 この式を私なりに分解して解釈すると、 RIGHT(B1,1)  B1つまり「Sheet1」という文字列の右から1番目の文字を取り出すということ。この場合は、「1」。 +D1 たとえば、D1に、3が入力されていれば、1+3=4となる。 とすると ("Sheet"&RIGHT(B1,1)+D1 このばあい、Sheet4を意味するわけで。 で、&"!A1"というのが、この後ろについてますが、 これは、以上から、Sheet4!A1、となるわけで、 =INDIRECT("Sheet"&RIGHT(B1,1)+D1&"!A1") と入力したセルには、今触ってるシートの右3番目のシートのA1が表示されるということだと、理解しました。 つまり、D1を、セルじゃなくてただの 1 という数値にすれば、一つ右隣のシートを指定できるということですよね。 うまく噛み砕けているか自信なしですが、参考になったでしょうか。

ari_1
質問者

お礼

お礼が遅くなって申し訳ありません。 とても参考になりました。試してみた結果うまくいきました。どうもありがとうございます。

その他の回答 (2)

  • nihonjinn
  • ベストアンサー率39% (79/200)
回答No.2

=CELL("filename",A1) これでこのシートの情報が出てきます。指定するセルはどこでもいいです。My DocumentsにあるBOOK1のSheet1なら C:¥My Documents¥[BOOK1.xls]Sheet1 となります。これがB1にあるとするとC1に =RIGHT(B1,LEN(B1)-FIND("]",B1)) と入れるとSheet1が抽出されます。 後はD1に数値が入ってるとして =INDIRECT("Sheet"&RIGHT(B1,1)+D1&"!A1") などと工夫してみてはいかがですか。Sheet1,Sheet2と数字を変えていけばいい分けです。数字が二桁ならまた工夫が必要です。 わからない点があればまた。

ari_1
質問者

補足

回答ありがとうございます。Excelが詳しくない為、なかなか理解出来ないのですが、A1,B1,C1,D1などの意味が良く分かりません。ヘルプなどを調べてみたのですが、思うような物が見つからず、もしヘルプに載っているのであればキーワード等教えていただけますか?

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

(1)関数式の中で使う表現としては、見とめられていないでしょう。 (2)VBAで Sub test01() MsgBox ActiveSheet.Next.Name End Sub を実行すると シートタブがSheet3-sheet4の順序の時、Sheet3をアクチブにして実行すると、Sheet4と表示されました。 シートタブがSheet4-sheet3の順序の時、Sheet3をアクチブにして実行すると、エラーになりました。見た目の隣りのシートを指定出きるようです。 MsgBox ActiveSheet.Previous.Nameも使えました。 またWorksheets(1),Worksheets(2)などの指定がで来ます。しかし右隣とは限りません。

ari_1
質問者

お礼

回答ありがとうございます。VBAを全く知らない為、VBAの知識がないと難しいですね。今後、VBAも使用したいと思いますので参考にさせていただきます。ありがとうございます。

関連するQ&A