• 締切済み

条件付き書式4つ以上のVBAについて教えてください。

fumufumu_2006の回答

回答No.5

たぶんわかったような気がします。 Sheet1のB7に入っている計算式が=データ!A2だった場合などの、Sheet1とデータの行が違う場合に問題が起こるのだと思います。 Sheet1のA7の計算式が=データ!A2だった場合で考えます。 ANo.3のプログラムでは、「データ」シートのセルの変更で、データのA2(2行目)を変更すると、Sheet1に2行目を変更した場合のチェックをさせます。 実際にチェックしなければいけないのは7行目です。 ということで、チェックする行を補正して伝えます。 Private Sub Worksheet_Change(ByVal Target As Range) Select Case Target.Column Case 1, 6, 8, 10, 11, 18, 20 '「データ」というシートのA,F,H,J,K,R,T列が変更されたら(1個足りないのだけど) '下は、Target(このシートの変更されたセル)の行(例えばA2だった場合は2)と、それによって計算式で変更されたSheet1のセルの行(例えばA7が変更された場合は7)の違いを補正するための+5を付けてSheet1のWorksheet_Changeを呼ぶ Sheets("Sheet1").Worksheet_Change Cells(Target.Row + 5, 1) 'Sheet1のWorksheet_Changeを実行。必要なのは行番号で、列番号は8(A-Hの場合)以下なら実行するので適当に1にしてます。 End Select End Sub p.s. これでうまく動かない場合は、Sheet1のA7とB7に入っている計算式も教えてください。

yuumi2000
質問者

補足

上記のように変更したところ Sheets("Sheet1").Worksheet_Change Cells(Target.Row + 5, 1) の+5の影響か,「Sheet1」の5行目の書式が変更されたので、 +7に変更したら、「Sheet1」の7行目のみ +8に変更したら、「Sheet1」の8行目のみ 書式が正常になりました。 なぜか1行のみ変更となってしまいます。 参考に Sheet1のA7…=IF((データ!$A2)="","",データ!$A2) Sheet1のB7…=IF(データ!$AA2="","",データ!$AA2) という計算式をしようしております。 私が詳しくない為、初歩的なミスをしているのかもしれません。 お手数をおかけしてすみません。

関連するQ&A

  • 条件付き書式について

    条件付き書式について A   B      C 件数 売上商品名  売上日 0   リンゴ    1/1 4   リンゴ 1/2 3   リンゴ 1/3 0   リンゴ 1/4 上記のような表をエクセル2003で作成しました。 A列の3行目と6行目の0件は誤入力です。 そこで質問なのですが、Bにリンゴの入力があり、かつ、 A列に0が入っていれば、セルを黄色にする条件付き書式 設定をしたいのですが、やり方がよくわかりませんでした。 教えてください。 あと、できればVBAで出来る方法も教えていただければ幸いです。

  • エクセルの条件付き書式設定について教えてください

    エクセルの条件付き書式設定について教えてください エクセルで工程表を作成しているのですが、条件付き書式設定で悩んでいます。 開始日と終了日に日付を入れるとその間はセルの色が黒に変わるように設定しているのですが、更に作業内容の項目のFIXという項目の開始日と終了日を入力したときだけセルの色を赤に変わるように設定したいです。 <例>                      7/1 7/2 7/3 A        B(開始日)   C(終了日) キックオフ   7月2日     7月2日 制作      7月8日     7月18日 FIX       7月20日    7月20日 色々と関数を使って試してみたのですが、どうしてもうまくできません。 ちなみにEXCELは2007です。 お手数ですが、ご教授お願いします。

  • VBAの条件付き書式の書き方

    VBA初心者です。 同じような質問が出ていますが、ドンピシャなのがなく助けて下さい。 エクセルで会社のスケジュールを作成中です。     A          B     ・・・ 1 =(sheet2!a1)   =$a$1 2    〃       =$b$1 3 4 という内容でa1から下のセルには日付が1,2,3と入っていて、 1ヵ月の予定で土日祝日と会議デーに色を付けたいのです。 予め、条件付き書式で、土日祝日は青、会議1が緑、会議2がオレンジまでは 指定したのですが、もう1回会議があり、セルの条件付き書式だと3つまでしか指定できなく、VBAで指定するしかなさそうで困ってます。 なお、会議は別シート(Sheet3)に、計算式で、例えば4月の第2週の金曜日を返すように設定したセルがあり、a1:a31の範囲で、そこを参照して指定した色を返すという方法にしたいのです。 別シートに入力されている会議3には"会議3"と名前を付けてあります。 文字列を参照して返す方法はたくさん質問で出ていたのですが、VBA初心者のため、どこをどういじったらいいのか、全く分かりません。 知恵をお貸し下さい!!

  • 条件付書式のVBA

    条件付書式のVBAについて質問させてください。 A1:A100に「晴れ」「曇り」「雨」「台風」「不明」と入力するとします、するとその行のいくつかセルに色をつけたいです。 たとえば、A1に「晴れ」と入力されたらB1、C1、(D1とばして)E1、F1・・・に色がつく。 できればVBAの式を教えていただけると大変助かります。 どうぞよろしくお願いいたします。

  • エクセルの条件付き書式設定について教えてください

    エクセルの条件付き書式設定について教えてください エクセルで工程表を作成しているのですが、条件付き書式設定で悩んでいます。 以前、こちらで相談させていただいてほとんど問題は解決して作成し終わったのですが・・・ さらに追加で注文をつけられてしまい悩んでいます。 今回の質問は、以前の「開始日と終了日に日付を入れるとその間はセルの色が黒に変わるように設定しているのですが、更に作業内容の項目のFIXという項目の開始日と終了日を入力したときだけセルの色を赤に変わるように設定したいです」に加えて、FIXという文字の前後にも何か文字がはいっている場合でも赤に変わるように設定したいです。 <例>                      7/1 7/2 7/3 A        B(開始日)   C(終了日) キックオフ   7月2日     7月2日 制作      7月8日     7月18日 Flash制作FIX  7月20日    7月20日 FIXの前後に*をつけてFIXを含むみたいにしてみたりもしたのですが、どうもうまくセルの色が赤に変わりません。 最終的には、「もし、A列にFIXという文字が含まれているのなら(FIXのみでも可)、B列とC列に日付を入れたらカレンダーのその日のセルが赤に変わる」というふうにしたいです。 お手数ですが、ご教授お願いします。

  • excelの条件つき書式で

    こんにちは!excel97使用です。 条件つき書式のことなんですが、例えば、   A  B 1 200 100 2 150 160 3  50 100 というデータで、B列のセルの値がA列の同じ行のセルの値より少ないとき、Bの文字色を変えたい、という場合、設定はどうすればいいのでしょうか? 例の場合、1行目のB列100だけ色が変わればいいんですが、1行目のBのセルの設定を2行目以下にコピペすると、全部が1行目のAの値に対して反応してしまいますよね?(わたしだけ???) 1個1個設定すればできるんですが、メンドウなので^^;、一気に条件付けする方法を知りたいです。 宜しくお願いします。

  • EXCEL2003 条件付書式が狂ってくる

    条件付書式は、見ためにどのセルに入っているのかわからないというのと、複数の条件付書式が入ると、なぜかその前に決めていた条件付書式が消えてしまっているということがあって、なかなか不便に思っています。(やりかたが悪いのかもと思うのですが) それで、VBAの entireculumn というのを見つけたのですが、 これで対応できるでしょうか? やりたい事は、 1 2*--------------------------- 3*--------------------------- 4 5 6*--------------------------- 7*--------------------------- 上記のように、「*」をつけた行にだけ、行全体に色をつけておく、 というのを条件付書式で、 「数式が」「=$A1="*"」 としたもので、その設定をしているシートに、横にずっと、いろんな関数を入れていってます。 ですが、関数を入れたり、そのプロセスで列挿入などすると、 色がずれてしまうのです。 その回避策として、VBAで最初に色の設定をしておけないでしょうか? 「*がある行だけに色をつける。」 よろしくお願いします。

  • マクロ 列ごとの条件付き書式

    マクロで列ごとの条件付き書式を作成したいです 条件としては ・列ごとに上限値が1行目に下限値が2行目に入力されている ・3行目以降に測定値が入力される ・その3行目位以降の測定値のセルの書式を上下限値から外れた値は色を変えたい ・50列ほどデータがある (例) A1 10 A2 5 A3~A100 数字 条件をA3~A100に設定 A1(10)より大きいもの、A2(5)より小さいものはセルの色を黄色 B1 15 B2 7  B3~B100 数字 条件をB3~B100に設定 B1(15)より大きいもの、B2(7)より小さいものはセルの色を黄色 こんな感じで列ごとにデータと規格値が入っているものが50列あります。 どうかよろしくお願い致します。

  • 条件付き書式について

    先程質問をさせていただいたのですが問題が発生したため再度質問しました。 条件付き書式の件で下記のような表があるとき(簡素化しています)についてですが 1)B1がマイナスの時A1に色がつく 2)B2がマイナスの時A2に色がつく 3)B3がマイナスの時A3に色がつく・・・・ のように行ごとに条件付き書式を設定したいのですが 1行づつ設定していかないとできないのでしょうか? 行数が100行以上ある為、効率が悪いです。 また、1行条件付き書式を設定して(コピー→形式を選択して貼り付け→書式) 次の行に貼り付けましたが上記1)を元にした場合B2にA2を関連付たいのですが コピーした場合、A1のままになってしまいます。 何か良い方法があれば教えていただきたいです。 ご教授よろしくお願いします。

  • 条件付き書式でセルに色を付けた際のズレ

    OSバージョン:Windows7 Professional SP1 Excelバージョン:Excel2007(12.0.06665.5003) SP3 MSO(12.0.06665.5003) スケジュール表を作成するにあたり、条件付き書式で自動的に該当時刻列のセルに色が付くようにしたいと思っています。 サンプルとして、 ------------------------------------------ 【セルに値を入力】 ・A3:A62に22:00~22:59の時刻を1分刻みで入力(開始時刻列) ・B3:B62に22:01~23:00の時刻を1分刻みで入力(終了時刻列) ・C2:BK2に22:00~23:00の時刻を1分刻みで入力(数式参照用時刻行) 【条件付き書式を設定】 ■数式を使用して、書式設定するセルを決定を選択し、以下の数式を設定 "=IF(C$2>=$A3,IF(C$2<$B3,TRUE,FALSE),FALSE)" ■書式:セルを赤で塗りつぶす ■適用先:"=$C$3:$BK$62" ------------------------------------------ と設定します。 全て開始~終了が1分なので、各行1セルずつ赤色がついて、綺麗に斜めの線が出来る想定なのですが、 6行目、8行目、10行目、12行目以降の行について、2セルずつ赤色がついてしまいます。 こうなってしまう事象原因がお分かりの方はいらっしゃいますでしょうか? よろしくお願いします。