Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


46682 / 76732 ←次へ | 前へ→

【35018】Re:日にちが経過しても数式が入るようにしたい
回答  [名前なし]  - 06/2/18(土) 16:12 -

引用なし
パスワード
   ▼クマ さん:
Sheet1の表の部分は数式だけで出来ると思います。
Sheet2の1行目が1/1として、

Sub Macro1()
  With Worksheets("Sheet1")
    .Range("B2").Formula = "=TODAY()"
    .Range("B3").Resize(30).Formula = "=B2+1"
    .Range("C2").Resize(31, 9).Formula = "=IF(OFFSET(Sheet2!C$1,DATEDIF(""1/1"",$B2,""D""),0)="""","""",""●"")"
  End With
End Sub

を実行すると、Sheet1に数式が入力されます。
実行した後はもうこのマクロは不要ですので削除してかまいません。
(念のために、マクロ実行前にブックを保存してください。)

Sheet1のB列最上部(B2)が今日の日付になり、B列に今日を基点として31日分の
日付が表示されます。C列以降にはB列の日付を基にSheet2のC1からOFFSETした
位置の値を参照する式が入力されます。そのため、Sheet1は必ず1行目の1/1から
抜けが無い状態に存在しなければいけません。(2/18なら49行目)

B2の =TODAY() のところを適当な日付に変えてみてください。
C列以降が自動で参照範囲(表示結果)が変わると思います。

=TODAY() により勝手にブックを開いた日に日付が変わるので、
Workbook_Openイベントのコードは不要になります。

0 hits

【34991】日にちが経過しても数式が入るようにしたい クマ 06/2/17(金) 18:01 質問
【35006】Re:日にちが経過しても数式が入るようにし... [名前なし] 06/2/18(土) 2:54 発言
【35007】Re:日にちが経過しても数式が入るようにし... クマ 06/2/18(土) 10:43 発言
【35018】Re:日にちが経過しても数式が入るようにし... [名前なし] 06/2/18(土) 16:12 回答
【35062】Re:日にちが経過しても数式が入るようにし... クマ 06/2/20(月) 15:37 お礼
【35017】Re:日にちが経過しても数式が入るようにし... Kein 06/2/18(土) 14:01 発言

46682 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free