EXCELVBAであるセルに設定されている条件式書式を取得したいと
以下のマクロを組みました。しかし、3つ設定されている条件式のうち
1つの条件が3回表示されるため、困っています。
何が悪いのかご教授ください。
Public Sub FormatConditionsTest()
Dim obj As Range
Set obj = Cells(108, 10)
Dim colFmt As FormatConditions
Set colFmt = obj.FormatConditions
Dim item As FormatCondition
For Each item In colFmt
MsgBox (item.Formula1)
Next
End Sub
No.2ベストアンサー
- 回答日時:
Cells(108, 10)に設定されている条件付き書式の[適用先]のセル範囲がそれぞれ違うと、
Formula1などの条件付き書式情報が正しく取得できないようです。
仕様なのかバグなのか知りませんが。
なので、ご提示の3つの条件の[適用先]を同一セル範囲に揃えてください。
どうしても、違う範囲を設定する必要がある場合、
作業用シートや作業用ブックにコピーして
ModifyAppliesToRangeメソッドで範囲を揃えてあげると取れます。
Private Sub test1()
ActiveSheet.Copy
Application.OnTime Now, "'test2 0'"
End Sub
Sub test2(ByVal dummy As Long)
'【注意】ActiveWorkbook.Close False するので単独実行はしないで
Dim obj As Range
Dim colFmt As FormatConditions
Dim item As FormatCondition
Dim ret() As String
Dim x As Long
Dim i As Long
Set obj = Cells(108, 10)
Set colFmt = obj.FormatConditions
For Each item In colFmt
item.ModifyAppliesToRange obj
Next
x = colFmt.Count
ReDim ret(1 To x)
For i = 1 To x
ret(i) = colFmt.item(i).Formula1
Next
ActiveWorkbook.Close False
MsgBox Join(ret, vbLf)
Erase ret
Set obj = Nothing
Set colFmt = Nothing
End Sub
ActiveSheet.Copyから続けて取ろうとすると、どうもうまくいきません。
コピー元のFormatConditionsが影響を受けてしまうなど、挙動不審なところがあります。?
その為、Application.OnTimeで一拍おいてます。
#もしかしたら他に簡易な方法があるのかもしれませんが、
#とりあえず取れたんで良しとしてしまいました :)
ありがとうございました。参考になりました。
>セル範囲がそれぞれ違うと・・・
確かに疑っていた箇所だったので、バグか仕様かわからないのが気になります。
No.1
- 回答日時:
参考URLで提示されているコードが参考になると思うのですが、質問趣旨とちがったらごめんなさい。
参考URL:http://okwave.jp/qa/q1455002.html
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) EXCEL VBAにて動的にCheckBOXを複数作成し、同BOXにイベントを追加したい 1 2023/03/16 07:05
- Excel(エクセル) B列に文字がはいったらA列に数字が入るマクロードを完成させたい 4 2023/04/21 01:58
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Visual Basic(VBA) エクセル VBA メール本文に指定セルに記載されているURLをリンクとして記載する方法 8 2022/08/08 07:50
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Visual Basic(VBA) Sheet2の日付をキーにオートフィルターで2023年1月のデータを抽出し、Sheet3へ書き出すた 2 2023/03/06 23:57
- Excel(エクセル) エクセル 値をコピペした時に、条件付き書式で塗られた背景色もペーストさせる 2 2023/04/05 17:21
- Excel(エクセル) EXCEL マクロで行を挿入して貼り付けようとするとエラーになる。 2 2022/05/24 09:43
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
MsgBoxの中にある数字や日付の...
-
【VBA】計算結果に小数点第2位...
-
チェックボックスのある行を非...
-
エクセルのメモについて教えて...
-
VBA 条件付き書式について
-
MSAccessでODBCを介してDB接続...
-
POIを使った書式設定
-
時間表示で0:48:17と入力すると...
-
VBA 条件付き書式で空欄は適用...
-
マイナス記号を▲で表す方法
-
スリープ状態とロック状態の違...
-
Apache起動エラー
-
Windowsのサービス起動エラーお...
-
UPS(無停電電源)のコンセント...
-
win xp の認証しないと...
-
iosでpcのエロゲーを動かすアプ...
-
スイッチングハブのIPアドレス
-
社内LANの配線図を作りたい。
-
ERROR 0189:Invalid RFID Confi...
-
ethtoolでリンク速度変更できない
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【VBA】計算結果に小数点第2位...
-
チェックボックスのある行を非...
-
クリスタルレポートの改ページ...
-
MsgBoxの中にある数字や日付の...
-
時間表示で0:48:17と入力すると...
-
POIを使った書式設定
-
VBでエクセル出力の文字を太字...
-
マイナス記号を▲で表す方法
-
VBA コンボボックスの表示(日...
-
spread6.0(セル連結)
-
VBA 条件付き書式で空欄は適用...
-
EXCEL2010でRGB指定できない
-
MSAccessでODBCを介してDB接続...
-
FORMAT関数で値が変わる
-
EXCELVBAであるセルに設定され...
-
PEAR::Pagerにアンカーリンクを...
-
【JAVA】POIを使用してExce...
-
エクセルのメモについて教えて...
-
JAVAのCalendarについて質問です
-
エクセル元データの#N/Aを非表...
おすすめ情報