『範囲内のみで作動』(木葉) Excel2003,WindowsXP おはようございます。 以前、ブックを開いた時の日付を、カレンダー内から探し出して 当日セルの書式を変えて、 ブックを開いた日が分かるようにしたく、質問させていただきました。 [[20131009100213]] 以下コードを利用させていただいております。 今回このブックを使用するのに月をまたぐのは初めての事なのですが、 一つ、改善したい点が出たので、再度質問させていただきます。 Sub 自動() Dim FR As Range Set FR = ThisWorkbook.Worksheets("年間カレンダー作成") _ .Range("B:H", "J:P").Find(Date, , xlFormulas, xlWhole, MatchCase:=False, MatchByte:=True) If FR Is Nothing Then MsgBox "当日セル、見つかりません。" Else With FR .Borders.LineStyle = xlContinuous .Interior.ColorIndex = 36 End With End If End Sub 2013年10月 日 月 火 水 木 金 土 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26  _  _  _ 27 │28│ 29 │30│ │31│   ̄   ̄   ̄  _____             │2013年11月│   ̄ ̄ ̄ ̄ ̄      日 月 火 水 木 金    土 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 こんな感じのカレンダーなのですが、今までだと開いた日の日付セルが10月のカレンダーのように罫線(細)と、パタ−ンカラーを薄黄色(ColorIndex = 36)になります。 10月28日、30日、31日に開いた事がわかります。 しかし、本日11月1日になって、いつもどおり上記コードを登録したボタンを押したら・・・ 上カレンダーの11月のように、2013年11月のセルが書式変更されてしまいました。 金曜日にある「1」を書式変更させるにはどうしたら良いでしょうか? 「2013年○○月」と言う部分は検索対象に入れないようにすればいいのかな・・・? ・日付の「1」「2」「3」・・・というのは、1,2,3・・・という数列ではなくて、 書式設定により「2013/11/1」→「1」、「2013/11/2」→「2」・・・としたものです。 ・カレンダーの配置は、 A列に「2013年1月」〜「2013年6月」 I列に「2013年7月」〜「2013年12月」 B〜H、J〜P列に日 が入力されており、1カ月につき10行を設けています。 例:1月 A1=「2013年1月」 B2〜H2=曜日 B3〜H8=日 残り2行は空白 上コード「.Range("B:H", "J:P")」の入力があるのでこの範囲内でのみ作動するとばかり思っていたので・・・ よろしければご教示ください。 ---- .Range("B:H", "J:P")という書き方はその間にある、I列も含みます。 「"B:H"と "J:P"の二つの範囲」という意味で書くとしたら、 .Range("B:H,J:P")と書きます。   Range(Cell1,Cell2) Cell1とCell2を対角とする四角形の範囲という意味です。 .Range("B:H", "J:P")という書き方は"B:H"と "J:P"という範囲ではなくて、 B1とP列の最終セルを対角とする四角形の範囲という意味になります。 (みやほりん) 2013/11/01(金) 13:31 ---- **みやほりん様 なるほど、そういうことだったのですね! 無事解決いたしました! 少し勘違いもしていたみたいです・・・ >>Range(Cell1,Cell2) てっきり部分的な範囲指定?をするものだと思っていました! 少し賢くなった気がします!ありがとうごうざいます^^ (木葉) 2013/11/01(金) 14:20