• 締切済み

マクロ フォントカラーを条件指定して印をつける

フォントカラーが赤の数値があれば〇を入力、みたいなことは、マクロでは可能でしょうか? 可能ならば、A~C列に赤フォントの数値があり、かつD~F列に赤フォントの文字列があったら、その行に〇を入力する、というマクロが知りたいのですが。

みんなの回答

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

>数値があれば の「数値」という属性は、「セルの値」についてのこと >フォントカラーが赤であれば 文字フォントの色で、「表示形式!」に関すること。 googleで「VBA セルフォント色 判別」で照会。 VBA セルの色を取得する http://www.tipsfound.com/vba/07005 両者を兼ね備えているかの判別は「AND」で条件を連ねる。 ーーー この区別セル野値と、表示形式の区別ができていますか。 はっきりわかっていない人が多いようだ。 「マクロ」という言葉を使うぐらいなら、後者の設定をして、そのマクロの記録を取ってみればコードはわかる。 ーー 数値かどうかの判別は、Googleで「VBA 数値の判別」で照会すれば すぐ記事が出る。 例 http://officetanaka.net/excel/vba/function/IsNumeric.htm If IsNumeric(a) Then を使えばよい。 こういうことを質問する前に調べたのかな。 ほかに別件でIsDateと言う関数もある。 ーー またエクセル関数IsNumericのVBA利用の http://vbaexcel.seesaa.net/article/148303808.html もある。 その注意書きに注意。 ーー 参考 A列の4データでのテストのためのコード。 Sub test01() For i = 1 To 4 If WorksheetFunction.IsNumber(Cells(i, "A")) Then MsgBox "数値です" Else MsgBox "数値ではない" End If Next i End Sub もある。

回答No.1

> ~~みたいなことは、マクロでは可能でしょうか? 出来ますよ。 対象セルの色は   対象セル.Font.Color でとれますので、これをIfなどで評価してやればOKです。 数値かどうかは   IsNumeric(対象) でとれますので、例えば   With Cells(1, 1)     If IsNumeric(.value) And .Font.Color = 255 Then       Cells(1, 7) = "〇"     Else       Cells(1, 7) = ""     End If   End With で、A1セルが数値で文字色が赤だったら、G1セルに"〇"が入ります。 あとはこれの組み合わせでなんとかなりますよ。 「赤っぽい別の色」だと対応できませんのでお気を付けくださいませ。

関連するQ&A