advanced help
per page, with , order by , clip by
Results of 1 - 1 of about 406 for kazu 条件付書式 (0.004 sec.)
kazu (7742), 条件付書式 (2647)
[[20040416153106]]
#score: 6689
@digest: d919b3a3f2d88749058f16062bc493c3
@id: 6212
@mdate: 2004-04-22T06:44:20Z
@size: 12336
@type: text/plain
#keywords: 替休 (20099), 振替 (15579), 日= (13208), 国民 (11035), 祝日 (9996), 「祝 (8990), weekday (8976), 日リ (7196), 〜ag (6492), 休日 (6360), 記念 (6268), 付書 (5998), 日") (5548), 曜日 (5463), 月23 (4387), 件付 (3918), 日", (3775), kamiya (3537), 来年 (3353), 日曜 (2855), 書式 (2742), date (2525), 条件 (2370), カレ (2259), 氏名 (2180), 適用 (2081), の日 (1878), 入力 (1549), レン (1406), 設定 (1386), 日の (1354), 用意 (1289)
『VBAで色付け』(はな)
いつもお世話になっております。 休暇シート一覧表があり、 日曜日、祝日の範囲に色を付けたいと思っています。 条件付書式及び手動で曜日を記入したセルに色をつけました。 その後,その色をすぐ下のセルから行単位でデータのあるところまで 色をつけたいのです。 データがあると認識できるのはB列のみです。 その月によって長かったり短かったりします。 曜日記入セルは固定です。 自動記録マクロではできないのでVBAかな、と思いますが なにぶんVBAはまったくの初心者です。 どうかかご教授お願いします! ---- 条件付書式でセルに色をつけているのですから、 VBAまで考えなくてもその色をつけたセルの条件設定の応用で 可能だと思います。 現在色をつけているセルと同じ列で、B列の何らかのデータを基準に ある行数まで色づけしたい、という処理であるとすれば、 「現在色をつけているセルの色付けの条件」 「B列にどのようなデータが(数値、文字列)どのように(連続、 不連続)で入力されている」 が明確になればレスがつくと思います。 (KAMIYA) ---- セルの条件設定の応用ができるのですか? B列には氏名が連続で入力されています。 B C D E F・・・・・ 1 2 3 4・・・・・ 土 日 月 火・・・・・ 氏名 氏名 氏名 氏名 こんな感じです。 空白のセルには後に文字を入れたりするので 関数などは入力できません。 条件設定で出来ればそれに越したことはないので 何とぞよろしくお願いします。 ん?改行が利かなくて変な表になってしまいました。 これでわかるでしょうか? ---- 条件付書式では設定するセルの値だけでなく、他のセルの値も 看視することが出来ます。 とりあえず、日曜日だけの条件付書式を考えてみます。 日曜日の列で、B列の氏名が入っている同じ行まで条件付書式を 適用する場合は条件の「セルの値が」を「数式が」に変更し、 下記の数式を入力します。 下記はC3へ設定する式なので、設定後、C3をコピーし、適用範囲 へ「形式を選択して貼り付け」で書式の張り付けしてください。 =AND(C$2="日",$B3<>"") 問題は「祝日」をどのように認識するかですが、 「祝日のリスト」 「シートのカレンダーが何年の何月のものか」 を用意しておけば案外簡単に判別することが出来ます。 (KAMIYA) ---- KAMIYAさん、ご解答ありがとうございます やってみたのですが、うまく行きませんでした(ToT) まず、条件付書式を追加で「数式が」で上記の計算式を入力して 書式の設定を日曜日と同じものにしました。 その後,C3(曜日セルの下ってことですよね)に同じ計算式を 入力して、カレンダー全体にC3の書式をコピーしました。 書式のコピーなので罫線だけが反映されて、色がつきませんでした。 適用範囲とは、氏名の横及び日付の下の範囲のことでいいのでしょうか? この範囲には数式が入ることになるのでしょうか? (数式は入れたくないのですが・・・) お手数をおかけしますが、再度教えてくださいませ。 ---- >この範囲には数式が入ることになるのでしょうか? 条件付書式の話なので、この範囲(曜日の下、氏名の右側の範囲) に入力する内容は考慮していません、というか、(はな)さんのご提示の条件と 私の提案した条件付書式の設定の場合は考慮する必要はありません。 条件付書式での「数式が」とは、C3セルで設定した 「=AND(C$2="日",$B3<>"")の結果がTRUE(真)の時」という意味で、 【補足】「もし」C3へ=AND(C$2="日",$B3<>"")という数式を入力したと「仮定」 して、その結果がTRUEである時に・・・と言い換えたほうがわかりやすいでしょ うか? 「=AND(C$2="日",$B3<>"")がセルに入力された時」という意味ではありません。 したがって、セルの入力内容として数式を入力する必要は(条件付書式を有効に するためには)まったく必要がありません。うまく機能していれば、何も入力さ れていなくてもセルの書式が変わるはずです。 =AND(C$2="日",$B3<>"") この式の意味は 「同じ列の2行目のセルが文字列の"日"で、同じ行のB列に何か入力されているか どうか」ということです。この二つの条件が正しい場合に条件付書式が適用されます。 >うまく行きませんでした(ToT) 考えられる原因は以下 「B列にまだ何も入力されていない」 「曜日が文字列の"日"ではない(シリアル値入力で表示形式で曜日を表示している等)」 「セルの位置関係が違う(氏名がB列でない、或いは曜日が2行目ではない)」 また、 >条件付書式を追加で・・・・ とされているのでしたら、 「他に条件付書式が設定されていて、そちらが優先されている」 (つまり、複数の条件付書式が設定されていた場合、そのいづれもが条件を満たしても 条件1から順に条件付書式が適用される、ひとつの条件付書式に他の条件付書式が 上書されるわけではない) が考えられます。 以上の点を確認してみてください。 (KAMIYA) ---- KAMIYAさん、出来ました! 言葉の意味を間違えていたようですね、私。。。 C3をクリックして、条件付書式を設定し、 その後全体にその書式をコピーしたら 色があっというまにつきました。カンドウです。。 ”日”の部分を変更して他の曜日でも出来ました! 数式の意味は難しくてわかりませんが 今後勉強していきたと思います。 本当にありがとうございました! ---- 「祝日」の色づけは必要なかったですか? 日曜日の分がうまくいったら、と思っていたので・・・。 (KAMIYA) ---- フォローありがとうございます! 祝日は今の所、曜日のセルに「祝」と入力し直して 書式も「祝」で追加しました。 上記に記載されている 「シートのカレンダーを何年何月のものか 用意すると・・・」の意味は 休暇表シートを月別に用意するということでしょうか? ずうずうしくてごめんなさい。(はな) ---- 基本的には(はな)さんの方法でうまくいくと思います。 (曜日のセルに「祝」と入力し直して書式も「祝」で追加) 「用意すると云々」は「祝日設定も自動」を意識してのことでした。 以下は応用ですから、無理にここまですることもないです。 興味なければ読み飛ばして結構です。 「祝日などの訂正も自動でやらせてしまおう」というものなので、 省けるのは曜日を入力する手間と祝日の修正ぐらいデス。 手が空いたときにでも試してみてください。 【下準備】 別のシートに下記のような祝日のリストを作成しておきます。 会社などの独自の休日も含めてもかまいません。 (B列「何とかの日」はとくに必要ではありません。) A B 1月1日 元旦 1月12日 成人の日 2月11日 建国記念の日 3月21日 春分の日 4月29日 みどりの日 5月3日 憲法記念日 5月4日 国民の休日 5月5日 子供の日 7月20日 海の日 9月15日 敬老の日 9月23日 秋分の日 10月11日 体育の日 11月3日 文化の日 11月23日 勤労感謝の日 12月23日 天皇誕生日 このとき、A列の日付は数式バーに「2004/1/1」などと表示されるような 入力をしておくようにします。 次に、1月1日〜12月23日までのセルを範囲選択し、数式バーの左、「A1」と 表示される部分(名前ボックス)へ「祝日リスト」と入力し、範囲名を付けておきます。 【カレンダーのシート】 カレンダーのシートへ戻って、次のような設定をします。 :C1〜AG1(日付1〜31の部分): 「セルの表示形式」「ユーザー定義」で「種類(T)」の欄へ「d」(日付入力して「日」の部分だけを表示する設定) :C2〜AG2(曜日の部分): 「セルの表示形式」「ユーザー定義」で「種類(T)」の欄へ「aaa」(日付入力して「曜日」の部分を表示する設定) また、次のような数式をセルへ入力していきます。 :D1〜AD1(日付2〜28の部分): D1へ=C1+1と入力してこれをコピー、貼付。 :AE1〜AG1(日付29〜31): AE1へ=IF(MONTH($AD$1)=MONTH($AD$1+COLUMN()-30),$AD$1+COLUMN()-30,"")を入力して コピー、貼付。 :C2〜AG2(曜日の部分): C2へ=IF(ISNA(MATCH(C1,祝日リスト,0)),C1,"祝")を入力してコピー、貼付。 さらに条件付書式を次のように設定します。 :C1〜AG?: C1への条件付書式「数式が」「=AND(OR(WEEKDAY(C$1)=1,C$2="祝"),$B1<>"")」を設定して コピー、必要範囲へ書式の貼付。 以上の設定を行って、C1へ「2004/5/1」と入力して「5/2〜5/5」が 4連休を示せば成功です。月別にシーと分けする場合はこのシートを雛型として、 随時にこのシートをコピーし、C1へ月初日付を入力するだけで日祝日を 「半自動認識」するシートが出来上がります。 「半自動認識」なのは祝日のリストで、「2004/1/1」のように入力されているためで、 このままでは「全自動」というわけには行きません。このままでは来年はつかえません から。ですが関数で「かなり自動」にすることは可能と考えています。 ここで気合切れ〜。 (KAMIYA) ---- (KAMIYA)さん、さっそくやって見ました。 ばっちりうまくいきました!あっという間に変わるので 楽しくて何度も遊んでしまいましたぁ。 おかげで私は気合十分です(笑) ずうずうしさまぎれでさらに質問させていただきたいのですが 来年に更新する場合は、祝日リストを来年用に変更して、 日付の個所に該当年月日をいれるだけで対応可能でしょうか? あと、曜日の部分を「祝」ではなく、そのまま曜日として 祝日に色をつける方法も教えていただければと思います。 お手数ですが、よろしくお願い致します。(はな) ---- 【曜日】 前の式は文字列の"祝"を表示するかどうかを判断しているだけなので、 C2〜AG2を選択して =C1 と入力しCTRL+Enter(或いは数式のコピペ) つまり、日付が入るだけです。表示形式で曜日が表示されます。 【条件付書式の数式】 C1〜AG?を範囲選択してから次の数式を設定します。 =AND(OR(WEEKDAY(C$1)=1,ISNA(MATCH(C$1,祝日リスト,0))=FALSE),$B1<>"") この場合、B1、B2にもスペースでよいので、何か入力しておくと 日付曜日部分も書式が変わります。 【祝日リスト】 次のようにします。(ちょっと見づらいですが) A B (A1はその年の西暦年を入力) =DATE($A$1,1,1) 元旦 =IF(WEEKDAY(A2)=1,A2+1,A2) =IF(A2=A3,"","振替休日") =DATE($A$1,1,IF(WEEKDAY(DATE($A$1,1,1),1)<=2,2,3)*7-4-WEEKDAY(DATE($A$1,1,1))) 成人の日 =DATE($A$1,2,11) 建国記念の日 =IF(WEEKDAY(A5)=1,A5+1,A5) =IF(A5=A6,"","振替休日") =DATE($A$1,3,INT(20.8431+0.242194*($A$1-1980)-INT($A$1-1980)/4)) 春分の日 =IF(WEEKDAY(A7)=1,A7+1,A7) =IF(A7=A8,"","振替休日") =DATE($A$1,4,29) みどりの日 =IF(WEEKDAY(A9)=1,A9+1,A9) =IF(A9=A10,"","振替休日") =DATE($A$1,5,3) 憲法記念日 =DATE($A$1,5,4) 国民の休日 =DATE($A$1,5,5) 子供の日 =IF(WEEKDAY(A13)=1,A13+1,A13) =IF(A13=A14,"","振替休日") =DATE($A$1,7,IF(WEEKDAY(DATE($A$1,7,1),1)<=2,3,4)*7-4-WEEKDAY(DATE($A$1,7,1))) 海の日 =DATE($A$1,9,IF(WEEKDAY(DATE($A$1,9,1),1)<=2,3,4)*7-4-WEEKDAY(DATE($A$1,9,1))) 敬老の日 =DATE($A$1,9,INT(23.2488+0.242194*($A$1-1980)-INT(($A$1-1980)/4))) 秋分の日 =IF(WEEKDAY(A17)=1,A17+1,A17) =IF(A17=A18,"","振替休日") =DATE($A$1,10,IF(WEEKDAY(DATE($A$1,10,1),1)<=2,2,3)*7-4-WEEKDAY(DATE($A$1,10,1))) 体育の日 =DATE($A$1,11,3) 文化の日 =IF(WEEKDAY(A20)=1,A20+1,A20) =IF(A20=A21,"","振替休日") =DATE($A$1,11,23) 勤労感謝の日 =IF(WEEKDAY(A22)=1,A22+1,A22) =IF(A22=A23,"","振替休日") =DATE($A$1,12,23) 天皇誕生日 =IF(WEEKDAY(A23)=1,A23+1,A23) =IF(A23=A24,"","振替休日") 使用時にA1へ西暦年を入力します。さらに、 「挿入」「名前」「定義」で「祝日リスト」の参照範囲を$A$2:$A$24に修 正します。 祝日の求め方はこの学校の過去ログを大いに参考にさせていただきました。 **(とくにシニア様、感謝、感謝!!) 振替休日の設定に勘違い、間違い等あればご指摘お願いします。 (ちょっと自信ないので) 正確には祝日は政府決定のようなので、上記も万全ではありません。 毎年都度確認は必要。やはり「かなり自動」が限度のようです。 【余談】 「国民の休日」の法文では、(祝日と祝日の間に一日しかなく、かつ日曜日 でない時はその祝日と祝日の間になる日を「国民の休日」とする)となって いますが、毎年の5/4以外には、2009/9/22がこれに該当します。 これが実際にどーなるか、調べてもわからなかったので、とりあえず割愛。 (KAMIYA) (KAMIYA)さま、完璧です。 一年を通して見直しましたが 間違いは等は見つかりませんでした! すごいものを作ってしまったなぁと唖然としています。 私が作ったわけではないのですが・・・汗 これなら全国の支店にバージョンアップ版として配布できます。 なんとお礼を言っていいかわかりません。 ほんとうにありがとうございます。(はな) ---- お役に立てたようですね。 自分でもこういうのを作ってみたかったのでいい練習でした。 ところで、最終的にタイトルにあるVBAは出てきませんでしたね。(笑) この点はWebMasterのkazuさんにお任せしましょう。 (KAMIYA) ...
http://www.excel.studio-kazu.jp/wiki/kazuwiki/200404/20040416153106.txt - [detail] - similar
PREV NEXT
Powered by Hyper Estraier 1.4.13, with 97004 documents and 608067 words.

訪問者:カウンタValid HTML 4.01 Transitional