• ベストアンサー

Excel マクロ

Private Sub Workbook_Open() Dim name As String name = "7月" '//ワークシート名----編集用(本日曜日カラー変更ロジック用----月初変更箇所) Dim week As String Dim Y As Integer Dim X As Integer '//処理(1)-(1) すべての曜日セルの背景を白にする Worksheets(name).Range("A13:M13").Interior.ColorIndex = 19 '白 '//処理(1)-(2) 今日の曜日を取得して色を変更する week = WeekdayName(Weekday(Now), False) '今日の曜日 Y = Worksheets(name).Cells.Find(week).Row X = Worksheets(name).Cells.Find(week).Column Worksheets(name).Cells(Y, X).Interior.ColorIndex = 45 'オレンジ系の色 '//処理(2) 本日日付を取得して色を変更する Dim D As Integer D = Day(TODAY()) '本日の日付 Y = Worksheets(name).Cells.Find(D, LookAt:=xlWhole).Row X = Worksheets(name).Cells.Find(D, LookAt:=xlWhole).Column Worksheets(name).Cells(Y, X).Interior.ColorIndex = 19 ' End Sub 途中なのですが、日付を取得して色を変える というロジックを作っていて 処理(2)からを新しく付け足した時にエラーが起こりました。 内容は「SubまたはFunctionが定義されていません」です。 どうやらD = Day(TODAY())らへんでエラーになっているようなのですが どなたか分かる方教えてください(´・ω・`)(´-ω-`))ぺこり

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

  • ベストアンサー
  • dr-9
  • ベストアンサー率47% (24/51)
回答No.1

TODAY()はEXCELの数式での関数ですが、VBAの関数にはありません。 代用として、Now()関数を使う事が出来ます。

marulak
質問者

お礼

そうなんですね! ありがとうございます、言われた通りにやってみたら 上手くいきました(´・ω・`)(´-ω-`))ぺこり

その他の回答 (1)

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.2

Dim D As Integer D = Day(Date) など。