• ベストアンサー

Excel:日付で選択するシートを選ぶ方法

今仕事で作りながら質問しています。 日報みたいなものを作っており、 1、2、3…31という感じで、31個のシートに名前をつけ、 別シートから日付によってそのシートの内容を引っ張るような表を作りたいのですが、 シートの選択をどのようにすればいいのか迷っています。 ='1'!A1 の'1'の部分が日付により'2'になったり'3'になったり することはできないのでしょうか? できれば、関数で処理したいのですが、 VBAでも構いません。 すみませんが、よろしくお願い致します。

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

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

関数でそのシートをアクチブにすることはできません。そもそもエクセルの関数は、値を計算や加工したり、引っ張ってくるだけで、シートをセレクトしたり、削除したり行、列の削除、セルの色、書体、罫線などの「左右」することはできません。メニューをクリックしてできることのほとんどのことは関数ではできないです。 ただ選んだシートの特定のセルを取ってくることなら できます。 日付と「SheetXX」のXXの部分が対応しているとして たとえばSheet3のB1に =INDIRECT("Sheet"&A1&"!A1") といれA1セルに「2」と入れるとSheet2のA1セルの値を持ってこれます。 Sheet1の複数セル範囲を持ってきたいとSheet3はそのセル範囲は関数式だらけになって、他の式が入れられません。だから使い物になるのは限られた場合でしょう。 VBAなら指定したシートを選択するのは簡単です。 Sheet3のChangeイベントプロシジュア に Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$A$1" Then Worksheets("Sheet" & Target).Select End If End Sub これでSheet3のA1に4を入れると Sheet4が選択できます。

yankee_d0-0b
質問者

お礼

ありがとうございます。 INDIRECTなんですね。 VBAまで教えて頂きまして、感謝です。 早く仕事を終わらせることができそうです(*^_^*)

その他の回答 (1)

回答No.1

こんにちは。 たとえば A2セルに 2005/6/3 と日付が入っていれば、 3 という名前のシートの A1セルを参照する、ということでしょうか? YESなら↓でどうでしょうか? --------------------------- =INDIRECT(DAY(A2)&"!A1") ---------------------------

yankee_d0-0b
質問者

お礼

日付関数を入れればいけますね! ありがとうございました。

関連するQ&A