| 
    
     |  | こんにちは。かみちゃん です。 
 > VBAでやりたい理由はそのほうが速いかと思ったからです。
 > 同じ手間が掛かるなら、この文で十分です。
 > for-next文使えないでしょうか?
 
 For〜Nextを使いたいのはなぜでしょうか?
 使わなくてもできますが、使わなければなりませんか?
 
 コードを組んで、毎日実行するのが手間かどうかわかりませんが、
 一応以下のようなコードでできると思います。
 Hirofumiさんご提案の方法とは、日付を数式で設定しているかどうかの差だけです。
 
 Sub Sample()
 Dim lngRow As Long
 
 With Range("A1")
 '現在の日付
 .Value = Date
 '2000/1/1からの日数を取得
 lngRow = DateDiff("d", DateValue("2000/1/1"), Date)
 '取得した日数分の数式を設定
 .Offset(1).Resize(lngRow).Formula = "=" & .Address(0, 0) & "-1"
 .Offset(, 1).Resize(lngRow + 1).Formula = "=" & .Address(0, 0)
 '曜日の表示形式を設定
 .Offset(, 1).Resize(lngRow + 1).NumberFormat = "aaa"
 End With
 MsgBox "終了しました"
 End Sub
 
 |  |