こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

-広告-

締切り済みの質問

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

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

投稿日時 - 2017-06-20 00:04:32

QNo.9343078

困ってます

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

-広告-
-広告-

回答(2)

ANo.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
もある。

投稿日時 - 2017-06-20 14:48:01

ANo.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セルに"〇"が入ります。
あとはこれの組み合わせでなんとかなりますよ。

「赤っぽい別の色」だと対応できませんのでお気を付けくださいませ。

投稿日時 - 2017-06-20 08:44:33

-広告-
-広告-

あなたにオススメの質問

-広告-
-広告-