[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『VBA:セルの値が直接入力か参照しているかで文字の色分け』(YOYO)
現在以下の条件付書式で、値の色分けを行っております。
他シートを参照している場合
=SEARCH("!",FORMULATEXT(A1)) → 書式で文字色を緑
数値を直接入力している場合
=AND(NOT(ISFORMULA(A1)),ISNUMBER(A1)) → 書式で文字色を青
VBAで同じこと(他シート参照か直接入力によって文字色を変える)をしたいのですが、ご教示頂けませんでしょうか?
< 使用 Excel:Excel2016、使用 OS:Windows10 >
直接入力した数値かどうかは、IsNumeric関数で調べるのが良いでしょう。 ただし、空欄でもTrueと判定してしまうので、空欄の場合を除外しましょう。
(???) 2018/10/04(木) 15:05
素人故どうも解決せず。可能であれば、サンプルコード等ご教示頂けませんでしょうか。
Hasfomulaを使って以下のようなコードまでは作ってみましたが、上手くいかず。
恐れ入りますが、宜しくお願いいたします。
Sub FormulaCheck()
'ループカウンタ初期化 i = 1
'ループ Do While Cells(i, 1) <> ""
If Cells(i, 1).HasFormula Then '式が設定されている場合、セル色を赤色へ変更
Range(Cells(i, 1).Address(RowAbsolute:=False, ColumnAbsolute:=False)).Interior.ColorIndex = 3 Else '式が設定されていない場合、セル色を緑色へ変更
Range(Cells(i, 1).Address(RowAbsolute:=False, ColumnAbsolute:=False)).Interior.ColorIndex = 4 End If
'ループカウンタインクリメント i = i + 1 Loop End Sub (YOYO) 2018/10/04(木) 18:04
これは、単に
Cells(i, 1)
でよいのではないでしょうか。
(マナ) 2018/10/04(木) 18:55
と判定できるなら、ジャンプ機能でセルを検索できますよ。
手動でまずは試して、マクロの記録でコードを確認することをお勧めします。
Sub Macro1()
With ActiveSheet.Columns("A") .SpecialCells(xlCellTypeConstants).Interior.Color = vbRed .SpecialCells(xlCellTypeFormulas).Interior.Color = vbGreen End With End Sub (まっつわん) 2018/10/04(木) 20:12
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.