• 締切済み

【Excel2003/VBA】ある列の入力内容で他列の書式を変えるマクロは?

こんにちは。 1つお教えいただきたいことがあります。 Excel2003を使用(WinXP Pro Sp2)を使用しておりますので、 条件付け書式を3つ(擬似的には4つ)までしか設定できません。 そこで、VBAでマクロを組んで対応したいと思うのですが、 たとえば、次のようなことを考えたいと思っています。 1. A列に4つ以上の条件があったときに、 その入力内容によって他列の書式を変化させる 2. A列のある条件を満たし、かつ、A列以外のある条件を同時に満たしたとき(AND)に、 それによって、もう1つの列の書式を変化させる 3. A列のある条件か、あるいは、A列以外のどちらかの条件を満たしたとき(OR)に、 それによって、もう1つの列の書式を変化させる フォントを太字にしたり、セルを塗りつぶしたり(カラーインデックス番号は理解しております)したい場合、 どのような分岐で上記1~3の条件を満たすマクロを書けばよろしいのでしょうか? あえて省略なしの冗長な記述法(かつ、説明コメント付きの記述)になってもかまいませんので、 できましたら、サンプルマクロなどの形でお教えください。 仮に、A列にア、イ、ウ、エ、オ、カがあり、 その入力次第で、 C列の各セルで、青・太字かつセルの水色ぬりつぶし、という形で表示されるようにする、 と仮定します。 2.と3.については、 たとえば、A列がアでB列もあだったら、C列のフォントなどの書式を変更、 A列がアかB列があだったら、C列のフォントなどの書式を変更、 という2つの場合を想定しています。 うんちく本を頼りにとっかえひっかえサンプルマクロを試し、業務に使用している、 というレベルでしかありませんので、 そのへんをご理解いただいた上でお答えいただけますと幸いです。

みんなの回答

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.1

>たとえば、A列がアでB列もあだったら、C列のフォントなどの書式を変更、 >A列がアかB列があだったら、C列のフォントなどの書式を変更、という2つの場合を想定しています。 A2があ、B2がアの場合は、どちらの設定でしょうか? >条件付け書式を3つ(擬似的には4つ)までしか設定できません。 書式の設定が3つまでですが、そんなに沢山のフォントの種類の表示が必要なのでしょうか? 例えば、C列選択して、条件付書式で =AND($A2="あ",$B2="ア") 適当な書式 追加で、第二の設定 =OR($A2="あ",$B2="ア") 適当な書式 取り合えず、ご希望の設定が可能では? その他、A1にあ B1にア とか書式設定したい項目を入れて =AND($A2=$A$1,$B2=$B$1) 適当な書式 追加で、第二設定 =OR($A2=$A$1,$B2=$B$1) 適当な書式 とかして、A1、B1の値を変えて、抽出した行に書式設定するなどはいかがでしょうか。 C列(A列、B列ではない)に書式設定するのは何か理由があるのですか?

kurikuri_maroon
質問者

お礼

ごめんなさい。 肝心なA列の条件による「分岐」が抜けてしまいました。 「補足」欄を使ってしまったので、「お礼」欄での再補足です。 D列のフォントの色、セルのぬりつぶしは、 B列・C列の内容にもよるのですが、 A列、つまり、部門別に、 さらにフォントの色やセルのぬりつぶしの色・パターンを変える、 ということを目的にしています。 見た目、かなりカラフルと言いますか、 かえって見づらくなるとは思うのですが、それは脇に置いておき、 要するに、A列・B列・C列という3つの条件によって D列の表示書式が決まってくる、 という感じになります。

kurikuri_maroon
質問者

補足

ご回答ありがとうございます。 チェックリストを作成しているのです。 質問内容が「漠然&簡潔化し過ぎ」だったかもしれませんので、 より実態に即して記してみることにします。 以下のとおりです。 A列には、たとえば、次のような条件があります。 この列では特に、オートフィルタによる部門別集計を意図しています。  1.部門1  2.部門2  3.部門3  4.部門4  5.部門5 B列には、面接者○○さんの評価 優・良・可・不可 を入れます。 C列には、面接者△△さんの評価 優・良・可・不可 を入れます。 このようなとき、 B列が優評価で、C列も優評価だったら、 自動的にD列(最終面接候補)に 優先 と表示され、 フォントが太字・赤、セルはぬりつぶされる、とします。 しかし、B列が優評価であっても、C列が良評価であれば、 D列には 次点 と表示され、 フォントは太字・赤となるも、セルは別の色でぬりつぶされる、 とします。 一方、B列が優評価以外であっても、C列が優評価であれば、 D列には 次点 と表示するものの、 前者との差別化のために、 フォントは太字・赤となるも、セルはまた別の色でぬりつぶす、 とします。 そして、次に、 B列もC列もどちらも可評価であった場合、 D列には 補欠 と表示し、 フォントは標準・赤とし、セルはさらに別の色でぬりつぶす、 とします。 最後に、 B列もC列もどちらも不可であった場合は、 D列には 不合格 と表示し、 フォントは太字&斜体、25%グレーとし、 セルを白黒パターンで網掛けにする、とします。 ということで、このような形を想定しているのです(^^;)。 かなり複雑ですが、 業務の都合上このようにせざるを得ないところがありますので、 何とかならないものか、と頭を抱えている次第です。

関連するQ&A

  • 【EXCEL2003】8つの条件がある書式設定のVBAの書き方

    VBAの書き方について御教授ください! 複数のシートに、入力値が決まっているA列とC列があります。 その入力値の組み合わせによって、入力時にA:Cのセル書式を以下のように8通りに変えたいです。 マクロの自動記録しか経験がなく調べたのですがよくわかりませんでした。 よろしくお願いいたします。 1.A列「あ」・C列なし→セル背景:黄 2.A列「あ」・C列「ア」→セル背景:黄 フォント:青 3.A列「あ」・C列「イ」→セル背景:黄 フォント:赤 4.A列「い」・C列なし→セル背景:緑 5.A列「い」・C列「ア」→セル背景:緑 フォント:青 6.A列「い」・C列「イ」→セル背景:緑 フォント:赤 7.A列なし・C列「ア」→フォント:青 セル背景:なし 8.A列なし・C列「イ」→フォント:赤 セル背景:なし

  • 条件付き書式をマクロで記入する方法?

    よろしくお願いいたします。 エクセル2010を使用しておりますが、 1行目の列ごと(A列、B列・・・・)に各種類の品物が入力されていて 2行目から、列ごとにその品物別の番号が多数あるのですが、 指定した番号が一致したらセルの文字を”太字”で”赤文字”、”黄色”で塗りつぶすと いった事がしたいのです。 条件付き書式でやればと思ったのですが、新しいルールといった作業が かなり時間がかかります。 そこで作成してもらいたい事は マクロで A列の番号 B列の番号 C列の番号 条件は太字、赤文字、黄色に塗りつぶす というような記述で列ごとに番号だけ変えれば上記のルールを実行できるといった ことをしたいのですが、可能でしょうか? できればマクロはほとんどわからないので、そのまま記述してもらえると助かります。 よろしくお願いいたします。

  • マクロ 指定の書式に合致したら〇をつける

    添付のように条件に合致したら〇を付けるマクロを教えてください A~F列、H列、それぞれに条件付き書式が設定してあり、合致すると赤か黒の太字になるようにしてあります。 A~F列に赤or黒フォント太字の数字があり、かつH列に赤の太字の文字列がある場合にJ列に〇を付けたいです。 実際には、300行くらいまであります。 前に、質問したら少しだけ教えてもらえたのですが、初心者のため、調べてもわかりません。至急使いたいので、コピペできるように作っていただけますでしょうか?

  • Excel2003 VBAにて条件付き書式のマクロを書きたいのですが、

    Excel2003 VBAにて条件付き書式のマクロを書きたいのですが、どうも上手くいきません。 1列おき(C列、E列、G列・・・)に条件付き書式を設定し、 条件は、 ・セルの値が”0”より大きい場合はフォント”赤”で表示。 ・セルの値が”0”より小さい場合はフォント”緑”で表示。 としたいと思いマクロを組んでみました。 Sub Color() Dim j, j0 Dim x Worksheets("sheet1").Active Application.ScreenUpdating = False j0 = 3 j = 300 For x = 3 To 100 Step 2 Range(.Cells(j0, x), .Cells(j, x)).Select Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlGreater, _ Formula1:="0" Selection.FormatConditions(1).Font.ColorIndex = 3 Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlLess, _ Formula1:="0" Selection.FormatConditions(2).Font.ColorIndex = 10 Next Application.ScreenUpdating = True End Sub デバックでステップインしていくと、ここで実行時エラー1004 アプリケーション定義またはオブジェクト定義のエラーです。がでます。 Selection.FormatConditions(1).Font.ColorIndex = 3 -------------------------------------------------------------------------------------- Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlGreater, _ Formula1:="0" Selection.FormatConditions(1).Font.ColorIndex = 3 Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlLess, _ Formula1:="0" Selection.FormatConditions(2).Font.ColorIndex = 10 -------------------------------------------------------------------------------------- この間は、マクロの自動記録で書かれてるので間違ってはいないハズなのですが、、、 お知恵を下さい。 よろしくお願いします。

  • マクロ 指定の書式に合致する行に〇をつける。

    添付のように条件に合致したら〇を付けるマクロを教えてください A~F列、H列、それぞれに条件付き書式が設定してあり、合致すると赤か黒の太字になるようにしてあります。 A~F列に赤or黒フォント太字の数字があり、かつH列に赤の太字の文字列がある場合にJ列に〇を付けたいです。 実際には、300行くらいまであります。 同内容を2回質問しており、どなたも部分的に教えてくださるのですが、結局、自分で試みてもうまくできませんので、助けていただけませんでしょうか?

  • マクロ 書式の条件に合致したら〇をつける

    添付をご覧ください。 A~C列、D~F列、G~I列、それぞれの3グループのうち、1行ずつで、色塗りがあり、かつ太字フォントがあれば、J列に〇を付けるというマクロが知りたいです。添付の例だとJ10に〇が付きます。分かりにくいですが、赤と緑のフォントが太字で、どちらも含める、色は3色あり、すべて含める、としたいので、「色塗りで太字なら、」で大丈夫です。エクセル2013使用です。

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

    マクロで列ごとの条件付き書式を作成したいです 条件としては ・列ごとに上限値が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列あります。 どうかよろしくお願い致します。

  • 隣のセルで書式を変える VBA

    通常の書式でのやり方ではわかりませんでした。マクロでなければできませんでしょうか? A列に値が入っていて、B列に値が入っていない場合にセル色とフォントを変更したいのです。 例えば、以下の感じです。 ・A6には値が入っていて、B6には入っていない場合にB6がセル色が赤でフォントが白 ・A7には値が入っていないくて、B7には入っていない場合は変化なし ※同じシートには他に、private sub でダブルクリックすると変化させるマクロが入っています。

  • エクセルの条件付き書式設定マクロについて

    エクセルの条件付き書式設定マクロについて A列からH列まで文字や数字が投入されています。 データが5,000行くらいあって、50行に1回くらい不定期で空白の行が出てきます。 データが入っている全ての範囲において、「C列が空白以外の場合に、 同じ行のA列からH列のセルの上と下を破線?(.Weight = xlHairline)左も右も縦線は実線? (.Weight = xlThin)にする」という条件付き書式を設定したいのですが、マクロが 上手く組めません。 ひとつのセルの条件付き書式の設定はマクロを組めるのですが、 A1:H5000というような広範囲で条件付き書式の設定を組むのが上手くいきません。 教えていただけないでしょうか。

  • 【excel】セル内の選択文字列の書式設定

    excelにて、 セル内の選択文字列の書式をいつも手動で決まった形式に変更しています。 具体的にいうと、1個のセル内で 前半は通常の書式設定(10pt&太字)ですが、 後半から8pt&標準の太さという風です。 この途中からの書式変更の作業をマクロ登録で簡略できないものかと思ってやってみたのですが、 1個のセル全体の書式はマクロ登録できるのですが、 選択文字列の登録ができません。 書式によってセルを別個にすれば問題ないのでしょうが、それはできれば避けたくて。。。 拙い説明になってしまいましたが、 どうかお知恵を拝借させていただきたいと存じます。 よろしくお願いいたします。

専門家に質問してみよう