dポイントプレゼントキャンペーン実施中!

いつもお世話になります。

Sheet1に条件付き書式のセルがあるかどうかをマクロで調べる方法を探してます。
Sub test3()
If Sheet1 = SpecialCells(xlCellTypeAllFormatConditions) Then
MsgBox "条件付き書式です"
Else
MsgBox "条件付き書式ではありません"
End If

End Sub

上記のどうしようもないコードをどなたか修正できる方いましたら お力添え下さい。

A 回答 (3件)

No2です。



> 変数のとこにセミコロンがあるのはどういう意味なんでしょうか。なにかウルトラC的な要素があるのかな?

改行せずに同じ行に次の文を書く場合には、コロンで区切ります。

私は、変数の初期設定をするときに、忘れない様に宣言と同じ行に書くようにしているだけで
この様に書かなくてはいけないということではありません。
    • good
    • 0

こんなかんじで如何でしょう。



Sub foo()
On Error Resume Next
Dim rs As Range: Set rs = Nothing
Dim r As Range
Dim s As String

Set rs = ActiveSheet.Cells.SpecialCells(xlCellTypeAllFormatConditions)

If rs Is Nothing Then
MsgBox "条件付き書式はありません"
Exit Sub
End If
s = "条件好き書式は以下のセルで設定されています" & vbCrLf
For Each r In rs
s = s & r.Address & vbCrLf
Next
MsgBox s
Set rs = Nothing
Set r = Nothing
End Sub
    • good
    • 0
この回答へのお礼

素晴らしいです。とにかく条件付き書式はSpecialCellsなんだということがわかりました。変数のとこにセミコロンがあるのはどういう意味なんでしょうか。なにかウルトラC的な要素があるのかな?
でもありがとうございます。

お礼日時:2016/01/06 14:12

こんにちは。



対象とするsheetのcells(=セル全体)に対してSpecialCells(xlCellTypeAllFormatConditions)をとってください。

具体的には
 Worksheets("Sheet1").Cells.SpecialCells(xlCellTypeAllFormatConditions)
のような感じでしょうか。

該当するRangeオブジェクトが返されますが、当然ながら、複数の場合もありますし存在しない場合もあり得ます。
該当がない場合はエラーとなるようですので、エラー処理も記しておく必要がありそうです。

具体的な例や、メソッドの説明は以下をご参考に。
 http://www.239-programing.com/excel-vba/basic/ba …
 https://msdn.microsoft.com/ja-jp/library/office/ …
    • good
    • 0
この回答へのお礼

ありがとうございます。サイト見たところ私には結構難儀な感じしました。
なんとかしてみたいと思います。

お礼日時:2016/01/06 14:04

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!