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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・【お題】絵本のタイトル
- ・【大喜利】世界最古のコンビニについて知ってる事を教えてください【投稿~10/10(木)】
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・ハマっている「お菓子」を教えて!
- ・最近、いつ泣きましたか?
- ・夏が終わったと感じる瞬間って、どんな時?
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
コトリン言語について。
-
Google ColaboでGUI作成
-
このURLで広告を出しているのは...
-
Web初心者です。 簡易的なWebペ...
-
pythonでAmazonのほしいものリ...
-
Pythonでの文字列からfloatへの...
-
google Colabでmatplotlibの描...
-
AIのプログラムについて教えて...
-
プログラミングについて プログ...
-
プログラミングの進学について
-
python エラー
-
P2P地震速報のEEW APIの仕様書...
-
マイクロソフトがvbを捨てたの...
-
AIの登場でプログラマーたちが...
-
VBAでパワーシェルを実行したい...
-
vba クリップボードクリアにつ...
-
プログラミングを学ぼうと思い...
-
以下の技能を無料で受講できる...
-
ネットワークフォルダの中身を...
-
プログラマーに向いている人の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【VBA】計算結果に小数点第2位...
-
MsgBoxの中にある数字や日付の...
-
チェックボックスのある行を非...
-
クリスタルレポートの改ページ...
-
VBでエクセル出力の文字を太字...
-
spread6.0(セル連結)
-
マイナス記号を▲で表す方法
-
POIを使った書式設定
-
jpgraph が表示されない
-
VBA コンボボックスの表示(日...
-
MSAccessでODBCを介してDB接続...
-
JExcelで警告が出て書式が設定...
-
日曜日始まりのボックス型の万...
-
C#にて、他言語にローカライズ...
-
VBAの繰り返し処理について教え...
-
【エンコード関係?】マルチバイ...
-
VBA 条件付き書式で空欄は適用...
-
SQL文 Where句の複数検索
-
FORMAT関数で値が変わる
-
grep で複数条件を指定
おすすめ情報