• ベストアンサー

日程表の祝日の列に網掛けをする方法

日程表を作っています。条件付き書式で土曜日、日曜日、祝日と日付に色をつけています。マクロを使い土、日の列に網掛けをすることはできましたが、祝日の列に自動で網掛けをすることができません。COUNTIF 関数はマクロで認識できないのですが、何かいい方法はありませんか。教えてください。よろしくお願いします。

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

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

>COUNTIF関数はマクロで認識できないのですが VBAでワークシート関数を利用するには http://www.relief.jp/itnote/archives/001834.php VBAで使用できるワークシート関数一覧 http://www.relief.jp/itnote/archives/001974.php 祝日のリストを別に作成するのが楽かも知れないです。 そのリスト内に合致するかどうかの判断を入れてあげればいいのでは。

satosin183
質問者

お礼

n-junさん早速ありがとうございました。現在作成している日程表は次のようになっています。 2008 9       1 2 3 4  15  23   15と23は祝日で赤の色がつきます     月火水木  月  火  曜日にも文字に赤の色がつきます。   A       ■  ■   B       ■  ■  ←網掛けをつけたい   C       ■  ■ 別のシートに祝日リストを作っています。 VBAは自己流で正式には学習しておりません。作ったVBAは次のようです。 Sub 休み網掛け() Dim Row As Integer Dim Col As Integer Sheets("日程表").Select For Row = 4 To 21 ActiveSheet.Cells(4,Row).Select If Range(4,Row).NamberFormat = OR(WEEKDAY(D$3,2)=7,COUNTIF(祝日,D$3)>0 Then    ↑この式に構文エラーが出ます。 For Co = 5 To 21 With Active.Cells(Col,Row).Interior .Pattern = xlPatternGray50 後は略します。  どうなおしたらよいかわかりません。初歩的なミスだと思うのですが・・・よろしければお教えください。

その他の回答 (2)

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

ANo.1です。 今一つピンとこないのですが、気になった点。 ・RangeはRange("A1"のようになるので、D列ならRange("D" & 変数)。 ・変数にRowを用いるのは混乱する。(RowはExcelでは既に予約語として登録されている。Colは問題なし。) あとはANo,2さんの方法を参考にされては。

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

>COUNTIF関数はマクロで認識できないのですが なぜ認識する必要あるのか? ーーー あえて言えば Sub test03() Dim cl As Range For Each cl In Range("A1:D20") If Left(cl.Formula, 9) = "=COUNTIF(" Then MsgBox cl.Address End If Next End Sub で出来るとも言えるが。 ーーー セル内容(値)が祝日の日付のセルに色や網掛けすればよいのでしょう。 祝日リストを別に用意して、VLOOKUPで聞けばしまいです。 祝日リストはこれは人間が作らないと難しいでしょう。 ーーー 例データ 極く簡略化して説明 A列 2008/7/20 2008/7/21 2008/7/22 2008/7/23 2008/7/24 2008/7/25 H1:H2に祝日リスト 2008/1/1 2008/7/21 ーー A1:A6範囲指定して 条件付き書式 式が =NOT(ISERROR(VLOOKUP(A1,$H$1:$H$10,1,FALSE))) 書式設定 で出来ます。 結果は、7/21が色が付きました。 無理すればVLOOKUP関数はVBAでもApplicationをつけて使えます。 見つからない場合というのを、OnErrorなどで捕まえるとかの難しいことが起こりそうだが。 VBAを使うならFindメソッドで祝日リストにあるかどうか判定するなど考えられる。 >祝日の列に とはどういう状態?祝日のセルに、では無いですか。質問で言っていることが心配だが。

satosin183
質問者

お礼

imogasiさん 早速詳しくおしえてくださいましてありがとうございました。私の説明が不十部のため、ご苦労をおかけしました。 実は条件付書式で、網掛けができるようになりました。  2008 9       1 2 3 4  15  23   15と23は祝日で赤の色がつきます     月火水木  月  火  曜日にも文字に赤の色がつきます。   A       ■  ■   B       ■  ■  ←網掛けをつけたい   C       ■  ■ 別のシートに祝日リストを作っています。 VBAは自己流でしてますので試行錯誤の状態です。Findメソッドも研究してみます。ありがとうございました。

関連するQ&A

  • 予定表の祝日セルに色をつけたいです。

    現在練習で予定表を作成しています。 年(G2)と月(S2)を打ち込むと自動的にセルに日付を表示されるようにしています。 関数は =DATE(YEAR(G2),S2,1) セルの書式設定が、日付の3/14にしています。 その後は、隣のセルに+1をして31日間分にしています。(行状にしています) 曜日は各日付の下に関数で =TEXT(該当日付セル,”aaa”) にしました。 土、日は条件付き書式で色をつけられたのですが、祝日に関しては別欄に祝日一覧をまとめてCOUNTIF関数で行いましたが、色が付きませんでした。 日付の表示上は問題ないですが、数式が入ってると反映されないのでしょうか。 もうしそうであれば、この自動化を壊さないように、祝日に色をつける方法を教えて頂きたいです。 長文、乱文失礼致しました。 よろしくお願い致します。

  • Excelの日程表について

    日程表でB列とC列に日付を入れたら横についているカレンダーに関数や条件付書式を利用して、色を付けるようにしたいのですが、どのようにすればよろしいでしょうか? よろしくお願いします。

  • 土曜・日曜・祝日に罫線を引く VBA

    条件付き書式を使い、土曜・日曜・祝日に自動的にB列~N列までセルに色がつくように設定してあります。 (例:セルの色は省略) B行(日付) C行(曜日)・・・・・・・・・・N行   1         日   2         月   3         火   4         水   5         木   6         金   7         土   8         日   ・          ・   ・          ・   ・          ・   31         火 色がついたセル(土・日・祝)のB列~N列に、セルの真ん中を通るような赤い線をマクロを使って引きたいと思っています。そういったことは可能でしょうか? よろしくお願いいたします。

  • Excelで土日の列を塗り分けしたい。

    縦軸に項目、横方向へ日付が並んだスケジュール表を構想してるのですが、土曜・日曜日の列を判りやすく塗り分けたいと思います。 曜日のセル単体には条件付き書式で設定できましたが、 その列全体を塗りつぶしたい場合はどうすればよいのでしょう? なるべくならマクロでなくワークシート関数で実現したく存じます。 しょうもない質問かもしれませんが、なにとぞ ご教授ください。

  • EXCELで教えてください。

    勤務表のようなものを作ってるのですが、日付の下に曜日を 表示しています。土・日の場合は休みというしるしで その列(土・日の列)に色を塗りたいです。 あと、可能であればマクロなどを使って、日曜日は毎週、 土曜日は第2・4土曜にだけ色をつけるというのは可能でしょうか? 条件付書式でチャレンジしましたが、該当の列全部に色をつけるというのが 難しくてできませんでした。教えてください!

  • Excel「別表の休日表に基づいて予定表に網掛け」

    Excelで仕事の予定表をつくっています。 予定表自体は、あるセルに西暦と月を入れると 自動で日付などが表示されるようにつくってあります。 別シートに休日一覧表をつくり、それに準じて予定表の該当日付行に 丸ごと網掛けをするようにしたいのですが、 うまく条件付書式が設定できません。 「別シートの表に一致する日付がある場合、その行に網掛け」という事なのだと思いますが、 ・・・表の名前定義を使うところでしょうか? よろしくお願いいたします。

  • エクセル2010 列による条件付き書式

    宜しくお願いします。 ==================================================    1  2 3 4 5 6 7 8 9 10 11 12 13 14    月 火 水 木 金 土 日 月 火 水 木 金 土 日 予定 時間  ==================================================== 上記のような表があり、土曜と日曜の日付だけを黒塗りしたいです。 行であればデータのフィルタでできると思うのですが 列でフィルタをできるのでしょうか? 土日の部分だけ黒塗り(灰色の網掛け)、またはフィルタを掛けて 土日だけ表示させたいです。 簡単な方法があれば教えてください。 宜しくお願いします。

  • エクセル関数で教えてもらいたいです。会社のあるスケ

    エクセル関数で教えてもらいたいです。会社のあるスケジュール表をみたんですが、写真のようなweekdayという関数を使ってます。 これは私が書かれていたのを再現したものですが、日付が書かれているB列をC列でweekdayで読みにいって、数字じゃなく曜日を出していました。 しかも、土曜日は青色、日曜日と祝日は赤色になるようになんかしています。5列に対し色の反転を起こしてます。 マクロは使ってないと思います。 これどんなアルゴリズムでやってるんですか?

  • エクセル表で祝日を表現する方法

    エクセルで1ヶ月分ずつの勤務表を作っていますが、 休日と土、日を分けて表示しましたが、祝日を休日と 同じ扱いで関数で表現する方法 ってあるんでしょうか? あったら教えてください。 できれば簡単な方法があればうれしいです。

  • 祝日の色つけ方法

    B3に年、B4に月、B5~B35に日、C5~C35に 曜日が入力されているExcelのカレンダーがあります。 別シート「祝日」に2016年の祝日カレンダーがあります。 条件付き書式でCOUNTIF関数を使って、 下記のサイトの通りに祝日に色をつけようとしているのですが、 上手くいきません。 どういった数式を入れればよろしいでしょうか。 教えていただけると幸いです。

専門家に質問してみよう