土曜・日曜・祝日に罫線を引くVBA
- 条件付き書式を使い、土曜・日曜・祝日に自動的にB列~N列までセルに色がつくように設定してあります。
- 色がついたセル(土・日・祝)のB列~N列に、セルの真ん中を通る赤い線をマクロを使って引きたいと思っています。
- よろしくお願いいたします。
- ベストアンサー
土曜・日曜・祝日に罫線を引く VBA
条件付き書式を使い、土曜・日曜・祝日に自動的にB列~N列までセルに色がつくように設定してあります。 (例:セルの色は省略) B行(日付) C行(曜日)・・・・・・・・・・N行 1 日 2 月 3 火 4 水 5 木 6 金 7 土 8 日 ・ ・ ・ ・ ・ ・ 31 火 色がついたセル(土・日・祝)のB列~N列に、セルの真ん中を通るような赤い線をマクロを使って引きたいと思っています。そういったことは可能でしょうか? よろしくお願いいたします。
- AkB373
- お礼率100% (33/33)
- Visual Basic
- 回答数5
- ありがとう数7
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
>祝日は、違うシートに書き出して、条件に=COUNTIF(シート名!$B$2:$B$72,$A6)=1 >(B2:B72まで祝日等のデータあり)を入れています。 Dim c As Range '前回の直線を削除 ActiveSheet.Lines.Delete For Each c In Range("B6:B36") If Weekday(c.Offset(, -1).Value) = 7 Or _ Weekday(c.Offset(, -1).Value) = 1 Or _ Application.CountIf(Worksheets("シート名").Range("B2:B72"), c.Offset(, -1)) = 1 Then With ActiveSheet.Shapes.AddLine(c.Left, c.Top + c.Height / 2, c.Offset(, 13).Left, c.Top + c.Height / 2) .Line.ForeColor.SchemeColor = 10 End With End If Next
その他の回答 (4)
- watabe007
- ベストアンサー率62% (476/760)
>条件付き書式には、 >=WEEKDAY($A6)=7や=WEEKDAY($A6)=1 などが入っているのですが、 >(A6からA36までに2013/12/28などの情報があります)この式を直接入れてしまってよろしいのでしょうか? Dim c As Range '前回の直線を削除 ActiveSheet.Lines.Delete For Each c In Range("B6:B36") If Weekday(c.Offset(, -1).Value) = 7 Or Weekday(c.Offset(, -1).Value) = 1 Then With ActiveSheet.Shapes.AddLine(c.Left, c.Top + c.Height / 2, c.Offset(, 13).Left, c.Top + c.Height / 2) .Line.ForeColor.SchemeColor = 10 End With End If Next If Weekday(c.Offset(, -1).Value) = 7 Or Weekday(c.Offset(, -1).Value) = 1 Then これに祝日の判定を加える必要がありますが 祝日の判定は、どのようにされていますか
お礼
ご回答ありがとうございます。
補足
お世話になります。 祝日は、違うシートに書き出して、条件に=COUNTIF(シート名!$B$2:$B$72,$A6)=1(B2:B72まで祝日等のデータあり)を入れています。
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! 横からお邪魔します。 オートシェイプを挿入するマクロはNo.1さんが的確なコードを載せていらっしゃいますので・・・ もしお使いのExcelが2010以降のバージョンであれば 「DisplayFormatオブジェクト」というものが追加されているようですので、 条件付き書式で色がついているセルを判別できます。 おそらく、月が変わるたびにマクロを実行する必要があると思いますので、 一旦オートシェイプを削除する必要あるのでは? 余計なお世話かもしれませんが・・・ Dim myShp As Object For Each myShp In ActiveSheet.Shapes myShp.Delete Next myShp を追加して、一旦表示されているオートシェイプを消してしまいます。 次に >If c.DisplayFormat.Interior.ColorIndex <> xlNone Then あとはNo.2さんのコードそのまま で条件付き書式で色がついているセルにオートシェイプが表示されると思います。 ※ Excel2007までの場合はすでに回答されているように IF の条件に 条件付き書式の条件を細かく設定してやる必要があると思います。 どうも失礼しました。m(_ _)m
お礼
ご回答ありがとうございます。 使っているのが、2007なので、2010以降を使うときは、参考にさせていただきます。
- watabe007
- ベストアンサー率62% (476/760)
#1です。 >条件付き書式を使い、・・・・セルに色がつくように If c.Interior.ColorIndex <> xlNone Then ↑これでは、条件付き書式で付けられた色は判別できないです。 ここに、条件付き書式の数式を記載してください。
お礼
ご回答ありがとうございました。
補足
ご回答ありがとうございます。 条件付き書式には、 =WEEKDAY($A6)=7や=WEEKDAY($A6)=1 などが入っているのですが、(A6からA36までに2013/12/28などの情報があります)この式を直接入れてしまってよろしいのでしょうか?
- watabe007
- ベストアンサー率62% (476/760)
こんばんは、参考に Dim c As Range '前回の直線を削除 ActiveSheet.Lines.Delete For Each c In Range("B1:B31") If c.Interior.ColorIndex <> xlNone Then With ActiveSheet.Shapes.AddLine(c.Left, c.Top + c.Height / 2, c.Offset(, 13).Left, c.Top + c.Height / 2) .Line.ForeColor.SchemeColor = 10 End With End If Next
お礼
ご回答ありがとうございました。
関連するQ&A
- 自動で任意の数字を入力する
条件付き書式を使い、土曜・日曜・祝日に自動的にB列~N列までセルに色がつくように設定してあります。 (例:セルの色は省略) B行(日付) C行(曜日)・・E行・・・・・・・・N行 1 日 2 月 3 火 4 水 5 木 6 金 7 土 8 日 ・ ・ ・ ・ ・ ・ 31 火 色がついたセル(土・日・祝)のE行に”0”を自動で入力したいと考えています。マクロを使えば可能なのでしょうか? よろしくお願いいたします。
- ベストアンサー
- Visual Basic
- 条件付き書式で セルへ色を付ける方法
条件付き書式でセルへ色を付ける方法を教えてください。 ●Office2013使用 ●別シート「祝日」で、祝日リストを作成済み (A1、A2…と祝日日付を入れています) ●B1には「1」としか表示されていませんが yyyy/m/d(aaa)の「d」のみ表示するよう書式設定 ●B2には「水」とした表示されていませんが yyyy/m/d(aaa)の「aaa」のみ表示するよう書式設定 <やりたいこと> 書式設定(土日はWEEKDAY、祝日はCOUNTF使用)で 土・日・祝日のセルに色を付けたいのですが 3行目(空欄)だけ色が付きません。 日にちと曜日が入っているセルには書式設定で色が付けられます。 色々調べてやってみたのですがギブアップです…。 どなたかお詳しい方、教えていただけないでしょうか。 宜しくお願い致します。
- ベストアンサー
- Excel(エクセル)
- カレンダーで祝日を表示させる。
EXCELにてカレンダー(勤務表)を作成し、月を変更すると自動的に祝日や土日には曜日の色が変わるようにはしたのですが祝日に該当する日(添付では1日(土)・10日(月))の曜日のセルの上にマウスを持っていくと添付画像のようにコメントが表示されるようにしたいのですが、どのようにすればよいのでしょうか? 色の変更等はVBAを使用していません(関数や条件付書式を使用しています)がとくに拘りはありませんので宜しくお願い致します。
- ベストアンサー
- オフィス系ソフト
- EXCEL 条件付き書式
過去の質問を検索したのですが見つからなかったので投稿させていただきました。 Excel2010を使用しています。 カレンダーを作成して日曜日と祝日と隔週月曜日の列に条件付き書式で色をつけたいのですが 教えていただけないでしょうか? ちなみに25日締めなので 26日~翌月25日までのカレンダーです。 B 3 26 27 28 29 30 31 1 2 3 4 5 6 7 8 9 10 11 4 土 日 月 火 水 木 金 土 日 月 火 水 木 金 土 日 月 5 ○○ 6 △△ 7 ×× 8 合計 B3(26) は 2013/2/26 表示形式 d B4(土)は=B3 表示形式 aaa 表が揃ってなくてわかりにくいですが日にちの下のセルに曜日がはいるようになっています。 祝日一覧を作成し、祝日と日曜日は=OR(WEEKDAY(B$3)=1,COUNTIF(祝日,B$3)) で条件付き書式で色を変更できたのですが 隔週月曜日はいろいろと試してみたのですがうまく設定できません。 よろしくお願いいたします。
- ベストアンサー
- オフィス系ソフト
- 勤務表の休暇振分表示
社員の休日を自動的に振り分ける表を作成したい と思っているのですが・・うまくいきません。 A1セル2006/7/1を元にカレンダーを作成しています。 A列が日付、B列を曜日とし条件書式を組み合わせ、 行に土曜と祝日と日曜に色分けをし月が変われば表示しない 設定としています。月をかえたらその月のカレンダーに なるようにしています。 C・D列には条件書式を反映しています。 仕事をしたらB列を元に条件に合うD列のセル(曜日行)に 担当者名を表示したいと思います。 担当者名には、番号をつけ、別の列に表示してあります。 C列には担当に値する番号を入力し C列にB列(曜日列)が土・日・祝日ならばDセルには何も 表示しない。 B列が月から木ならそれぞれ翌日の曜日のDセルに担当者名を 表示する。 (例えば7月3日(月)の場合C列にAと入力すると7月4日 の行のDセルにAに値する担当者名を表示する) ただし、金なら翌週の月の行のDセルに担当者名を表示する。 どうかお力をお貸しください! 急いでいます。よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- Excel:土曜と日曜の行に書式設定
会社で働いた時間の表をExcelで作っています(1ヶ月 1シート)。 B列は日付が入っていて、 C列には曜日、例えば =TEXT(B3, "ddd") が入っていまして(Sun,Satなどと表示)、 D,E,F列・・・・・には出社時刻、退社時刻、休憩時間、・・・・を入力します。 やりたいこと:土曜と日曜は書式設定をしたい(たとえば セルに色を付ける。) 範囲指定して 書式メニューの条件付き書式で、 条件1 セルの値が 次の値に等しい ="Sun" 条件2 セルの値が 次の値に等しい ="Sat" などと設定すれば、曜日(C列)のセルは指定した設定になりますが、 他の列も指定した設定にしたいのです。 バージョンはExcel2000です。よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- 条件付き書式について
条件付き書式でセルへ色を付ける方法を教えてください。 ●Office2013使用 ●別シート名「祝日」で、祝日リストを作成済み (A列に祝日日付を入れています) ●A2には「1」としか表示されていませんが yyyy/m/d(aaa)の「d」のみ表示するよう書式設定 ●B2には「金」としか表示されていませんが yyyy/m/d(aaa)の「aaa」のみ表示するよう書式設定 <やりたいこと> 書式設定(土日はWEEKDAY、祝日はCOUNTF使用)で 土・日・祝日のセルに色を付けたいのですが C列だけ色が付きません。 C列には文字を入力する予定ですので 文字を入れても背景の色はAB列と同じのまま… そんなこと可能でしょうか。 色々調べてやってみたのですがギブアップです…。 どなたかお詳しい方、教えていただけないでしょうか。 宜しくお願い致します。
- 締切済み
- Excel(エクセル)
- 日曜&祝日を除く7営業日後(EXCEL)
EXCEL初心者です EXCEL2007(12.0.6654 5503)SP2を使用しております もしわかりましたら教えてください A B C D 1 2012/6/1 2012/6/9 11日目 2012/6/21 2 2012/6/4 2012/6/12 9日目 3 2012/6/9 2012/6/18 4日目 (1)セルA列に日付がはいってます セルB列にセルA列の7営業日後(日曜、祝日は休み。土曜日は営業) を自動的に表示されるようにしたい (2)セルD1には今日の日付がはいってます セルC列にB列の日付から今日まで何日経ったか、営業日の日数(日曜、祝日は休み。土曜日は営業) で自動的に表示されるようにしたい 説明がわかりずらかったらすみません 補足しますのでその旨記載お願いします
- 締切済み
- オフィス系ソフト
- エクセル 書式設定?教えて!
土日曜・祝日の欄に色塗りをしようと思います。 (1)日付のセルは、(例B2):「2009/2/1」、(B3):「=B2+1」としました。うまくいきました。セル書式ユーザー設定「d」 (2)曜日のセルは、(C2):「=B2」、(C3):「=B3」とし、曜日はうまくいきました。 土日曜・祝日の欄に色塗りをしようと、条件付書式でセルの値が土に等しい場合は、赤と色設定をしました。 追加条件として、それぞれ日・休も設定しました(条件3まで)。 しかし色塗りは出来ませんでした。セル書式ユーザー設定「aaa」です。 どうしたらよいのか、お教え下さい。よろしくお願い致します。
- ベストアンサー
- Windows Vista
- エクセルの条件付書式について質問です。
図のような毎月手書き入力するシートが多数あります。 A1のセルにその月の1日の日付を入力してB3に=A1、C3にB3+1・・・ で条件付書式aaaで曜日表示するところまではできました。 さて、初心者の私は毎月土日をせっせと塗りつぶしていましたが・・・ 条件付書式で3の行(列?)に土、日が表示されたらその列(行?)は灰色に塗りつぶす ことができるのではないか?と気づきました。 ところがC3に「土」と表示されたことに対してC4を塗りつぶすなど私には想像もつきません。 C4の条件付書式は「数式がIF(C3="土""日",・・・・・・)」みたいな感じですか? また全部のセルにいっぺんにその書式を設定することはできますか? ちなみにバージョンは2003です。
- ベストアンサー
- オフィス系ソフト
お礼
何度も何度も助けていただきありがとうございます。 参考にして、勉強させていただきます。