、=TEXT(WEEKDAY(A1),"aaa")を入れて自動的に曜日が出るようになったのですが
今度はマクロを使って日付と曜日の字を赤色に変えてやりたいのですがどうすれば良いでしょう
マクロは動的に処理するというよりは、その都度実行する使い方になります。
マクロでシート全体の"日"を赤字にするマクロは
Sub 特定の文字色の変更() Dim r As Range Dim firstAddress As String Set r = Cells.Find(What:="日", LookIn:=xlValues, LookAt:=xlWhole) If Not r Is Nothing Then firstAddress = r.Address Do r.Font.ColorIndex = 3 'r.Offset(0, -1).Font.ColorIndex = 3 '例えば曜日の左が日付なら Set r = Cells.FindNext(r) Loop While Not r Is Nothing And r.Address <> firstAddress End If End Sub
条件付書式はもっと簡単にできます。
Excel2007は条件付書式が機能強化されてわかりづらくなりましたが、
http://www.eurus.dti.ne.jp/~yoneyama/Excel2007/excel2007-jyosyo....
変えたい箇所を選択して、ホームタブ→条件付書式→セルの強調表示ルール→文字列を選び
日 書式: 赤の文字
とするだけです。
たとえば セルがA1だと
Range("A1").Font.ColorIndex = 3
とすればいいです。
それぞれのセルで実行させてやればいいです。
マクロは動的に処理するというよりは、その都度実行する使い方になります。
マクロでシート全体の"日"を赤字にするマクロは
Sub 特定の文字色の変更() Dim r As Range Dim firstAddress As String Set r = Cells.Find(What:="日", LookIn:=xlValues, LookAt:=xlWhole) If Not r Is Nothing Then firstAddress = r.Address Do r.Font.ColorIndex = 3 'r.Offset(0, -1).Font.ColorIndex = 3 '例えば曜日の左が日付なら Set r = Cells.FindNext(r) Loop While Not r Is Nothing And r.Address <> firstAddress End If End Sub
条件付書式はもっと簡単にできます。
Excel2007は条件付書式が機能強化されてわかりづらくなりましたが、
http://www.eurus.dti.ne.jp/~yoneyama/Excel2007/excel2007-jyosyo....
変えたい箇所を選択して、ホームタブ→条件付書式→セルの強調表示ルール→文字列を選び
日 書式: 赤の文字
とするだけです。
質問があいまいと判断されますので 以下の点を 確認させてください。
>今度はマクロを使って日付と曜日の字を赤色に変えてやりたいのですがどうすれば良いでしょう
変更するのは 日付と曜日の字の色のみでいいのか?
>毎月表の日にちと曜日が変わっていくので "日" と言う文字を探してその文字と日にちの色を赤に変えたいのですが
日という文字を探すならば、どのようにして表示されてるのかが わからないと難しいです。
たとえば
24日
6月1日
2010年01月01日
など その表示形式(日の場合は 桁数がかならず2桁なのか 1桁と2桁の混合なのか)を教えてください。
また 曜日は 単体のセルなので Range("A1").Font.ColorIndex = 3 でOKです。
あと、表示形式のみ変更している場合は、対応できません。
文字列になっていないとダメです。
つまり、そのセルを 選択したとき、fxと書かれた欄とセルの表示が一致している必要があります。
毎月表の日にちと曜日が変わっていくので "日" と言う文字を探してその文字と
日にちの色を赤に変えたいのですが