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

こんにちは。

Excelで 現在のシートのA1セルに
左隣のシートのC1セルの値を表示させる数式を教えてください。
シートの並びを変えても常に左隣のシートを参照したいのです。

シートはいくつもあり、そのすべてのシートに適用します。

Excelは2003です。
よろしくお願いいたします。

A 回答 (5件)

自分で提示していて何なのですが、


INDIRECT関数は、揮発性関数ですので、
ブックに変更を加えてなくてもブックを閉じるときに
「上書きしますか?」と聞いてきます。
    • good
    • 0

VBAでは、シートでの選択にPreviousというのが


ーー
アクティブシートの1つ前のシートを選択
 ActiveSheet.Previous.Select
これを普通では関数に取り入れられない。
ユーザー関数でやれば出来るかもしてないが
標準モジュールに
Function prsh()
Application.Volatile (True)
prsh = ActiveSheet.Previous.Name
End Function
エラー処理は省略している。
ーー
Sheet2でSheet1タブが左にあるとして
Sheet2のセルに =INDIRECT(prsh()&"!A1")
これでSheet1のA1セルの値をとってきた。
>シートの並びを変えても常・・
色々の点から考えて関数向きの課題では無いように思う。
    • good
    • 0

ユーザー定義関数での方法の例です。



'標準モジュール
Function mae()
mae = ActiveSheet.Previous.Name
End Function

'シート
=INDIRECT(mae()&"!C1")
    • good
    • 2

#1です。


先ほど提示した方法は、シート名を取得してますので、
並び替えたりシート名を変えたりしたらアウトですね。

VBAならいけると思うのですが。
    • good
    • 0

無理矢理です。


余りお勧めではないですが・・・。

=INDIRECT("Sheet"&SUBSTITUTE(MID(CELL("FILENAME",A1),FIND("]",CELL("FILENAME",A1))+1,256),"Sheet","")-1&"!C1")
    • good
    • 1

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

このQ&Aを見た人はこんなQ&Aも見ています