• ベストアンサー

エクセルのマクロ

Sub test() Dim x As Range  For Each x In Selection    If x.Value <> "●" And Selection.Font.ColorIndex = 0 Then    x.Value = "○"  End If Next End Sub 上記は、選択されているセルのフォントが黒でかつ"●"が入力されていない場合は"○"を入力する、というマクロですがうまく動作しません。どうすれば正常に動作するようになるでしょうか?

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

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.3

#1>それは既に試しているのですが、ダメでした。 フォント色が黒ではなく、自動になっているのでしょう では以下を試してください If x.Value <> "●" And (x.Font.ColorIndex = 0 Or x.Font.ColorIndex = xlColorIndexAutomatic) Then

naruue
質問者

お礼

ありがとうございました。 OKでした。

その他の回答 (3)

noname#181803
noname#181803
回答No.4

黒のColorIndexって0じゃなくて1だったりして・・・。

naruue
質問者

お礼

ありがとうございました。 今調べてみましたが、そうみたいですね。 "0"は自動のようです。

回答No.2

>セルのフォントが黒でかつ"●"が入力されていない場合 というのは、 not( x.Value = "●" And Selection.Font.ColorIndex = 0 ) x.Value <> "●" or Selection.Font.ColorIndex > 0

naruue
質問者

お礼

ありがとうございます。

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

Selection.Font.ColorIndex = 0 を x.Font.ColorIndex = 0 にしてみる

naruue
質問者

お礼

ありがとうございます。 が、それは既に試しているのですが、ダメでした。

関連するQ&A