• ベストアンサー

数値が大きければ太字にするマクロ

添付画像のようにアクティブセルの列の左隣のセルより数値が大きければ太字にするマクロをご教示いただけるでしょうか。尚、データの列数は増えていきますが、行数は不変です。

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

  • ベストアンサー
  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.2

選択したセルより下方向にしてます。 1行目からなら For i = ActiveCell.Row を For i=1 に Sub Test() Dim i As Long For i = ActiveCell.Row To Cells(Rows.Count, ActiveCell.Column).End(xlUp).Row If Cells(i, ActiveCell.Column).Value > Cells(i, ActiveCell.Column).Offset(0, -1).Value Then Cells(i, ActiveCell.Column).Font.Bold = True End If Next End Sub

その他の回答 (3)

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

そもそも、なぜマクロでやるの? 操作でできる、ではないか。 ーー 質問の例は、2列の例だが、そのため、質問の趣旨がよくわからない。 ・例は例で、3列以上でも考えるのか。 ・2列ごとにペアで考えるのか?A列とB列、C列とD列の様に。 下記は、もし誤解していたら無視してください。 コンピュータの処理は,表現が微妙な場合が多いのだ。その表現で、人によって(たとえ誤解にしろ)どう受け取られるか、いつも危険が潜んでいるので、表現には、神経質になれ。画像掲示だけは、危険なんだ。 ーー ・3列以上でも考える。 ・前列で左列(同行)の数字より大きい場合に赤字にした。 ーー 例データ A-F列 33 23 26 12 34 33 34 11 20 23 22 34 56 66 45 34 16 12 65 76 4 12 13 14 23 35 14 15 14 16 45 45 46 1 2 1 11 23 1 2 3 2 ーーー 標準モジュールに Sub Macro1() lr = Range("A10000").End(xlUp).Row MsgBox lr cr = Cells(1, 100).End(xlToLeft).Column MsgBox cr '--- Range(Cells(1, 2), Cells(lr, cr)).Select Range("B1").Activate Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=A1<B1" Selection.FormatConditions(1).Font.ColorIndex = 3 ' Selection.FormatConditions(1).Font.Bold = True Selection.FormatConditions(1).StopIfTrue = False End Sub マクロの記録が参考になる。 太字では区別が、つき辛いと思って、条件合致のセルは赤字にした。 ーー 結果 赤字は第1行目では、26と34が赤色字。 他の行は、自分の実行結果を見てください。 ーー 個人的には、梃子づって、むつかしい課題と感じた。

  • m_and_dmp
  • ベストアンサー率54% (987/1817)
回答No.3

マクロは必要ありません。「条件付き書式」でできます。 書式を指定するセル、B1を選択、 リボンのスタイルグループの条件付き書式をクリック、 表示されたメニューから「セルの強調表示ルール」をポイント、 表示されたオプションから「次の値より大きいセルの書式設定:」の下のボックスに選択したセルに入力されたの値が表示されています。その状態で、セルA1をクリック、 すると、「次の値より大きいセルの書式設定:」の下のボックスに=$A$1 と表示されます。それを =$A1 に修正します。(しなくても良いかもしれませんが) 「書式: 」のプルダウンメニューを展開して適当な書式を選択します。気に入った書式がなければ、「ユーザー設定書式」を選択し、書式を自分で設定します。 フォントを太字、フォントの色を黒に、塗りつぶし(背景)を色なしにするといいでしょう。 これで、A1 の値よりB1 の値が大きいとき、B1 の文字が太字で表示されます。 つぎに、B1 の書式をB2 以下にコピーします。書式をコピーするには、B1を選択し、ホームタブ、クリップボードグループの「書式のコピー/貼り付け」をクリックして書式をコピーし、B2 以下のセルを全部選択し、「書式のコピー/貼り付け」をクリックして書式を貼り付けます。

  • mabyos
  • ベストアンサー率52% (61/117)
回答No.1

https://www.becoolusers.com/excel/conditional-formatting.html マクロではありませんが、条件付き書式を使えば実現できると思います。