Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 7 Professional : Excel 2010)
VBAで条件付き書式設定後、ジャンプのセル選択で選択できない
投稿日時: 17/09/13 19:47:49
投稿者: zaq-you

VBAでセル A1:A5に条件付き書式を設定した後、A1をセレクトして[ジャンプ] [セル選択] [条件付き書式] [同じ入力規則]で検索すると、A1:5がセレクトされるはずが、「該当するセルが見つかりません」のメッセージがでます。
このブックを一度保管終了し、再度読み込みし、A1セレクトし、検索すると正しく検索されます。
保管以外には、手処理で条件付き書式を変更せずに更新、適用すると正しく検索されます。
VBAでの対処方法を教えてください。
以下条件付き書式設定マクロを記載します。
    Range("A1:A5").Select
    Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlBetween, _
        Formula1:="=1", Formula2:="=5"
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
    With Selection.FormatConditions(1).Interior
        .PatternColorIndex = xlAutomatic
        .Color = 255
        .TintAndShade = 0
    End With
    Selection.FormatConditions(1).StopIfTrue = False
 
尚、Windows10のExcel2013では、この現象はでないようです。

投稿日時: 17/09/13 19:53:36
投稿者: zaq-you

すみません。Windows10のExcel2013でも同じ現象がでます。

回答
投稿日時: 17/09/13 20:01:33
投稿者: simple

[同じ入力規則]を選択する狙いはなんでしょうか。

回答
投稿日時: 17/09/13 23:15:44
投稿者: WinArrow
投稿者のウェブサイトに移動

なにか、勘違いしていませんか?
 
「条件付き書式」と「入力規則」は、全く機能が異なります。
>、「該当するセルが見つかりません」
は、当たり前です。
 
「ジャンプ」ー「条件付き書式」・・・だったら「すべて」を指定するのでは?

回答
投稿日時: 17/09/14 10:21:50
投稿者: Suzu

WinArrow さんの引用:
「条件付き書式」と「入力規則」は、全く機能が異なります。
>、「該当するセルが見つかりません」
は、当たり前です。
 
「ジャンプ」ー「条件付き書式」・・・だったら「すべて」を指定するのでは?

 
当方でも、確認できました。
VBAで条件付き書式を設定直後、[同じ入力規則]でジャンプしても見つからない。
ファイルを保存してから、[同じ入力規則]なら、見つかる。
 
SpecialCells(xlCellTypeAllFormatConditions) で 条件付き書式を 取得し
1セル・FormatConditionオブジェクト毎に For Each で条件合致判定 くらいしか思いつきません。
 
目的によっては違う方法が採れるかもしれませんので、私も 同じ入力規則 を選択する意図、最終的になにがしたいのかを知りたいです。

回答
投稿日時: 17/09/14 10:31:14
投稿者: 半平太

>「ジャンプ」ー「条件付き書式」・・・だったら「すべて」を指定するのでは?
 
そういう次元の問題じゃないと思います。
 
それは単に、ダイアログの文言が不適切なだけであり、最初に「条件付き書式」を選んだ場合、
[同じ入力規則]で検索すれば、「同じ条件付き書式」の検索となる。
 
マクロの記録で、成功時のコードを見ると、Range.SpecialCellsメソッドのTypeは
チャンとxlCellTypeSameFormatConditions になっています。
 
じゃ、どうすればいいかと思って色々やっていると、エクセルがおかしくなります。
 
普通にセルが選択することが出来ない状態になる。
(厳密に言うと、選択は出来ているらしいが、表示が選択されているように見えなくなる)
 
何らかのバグが絡んだ問題かと思われるので追及は止めました。

回答
投稿日時: 17/09/14 13:29:42
投稿者: WinArrow
投稿者のウェブサイトに移動

半平太さんレス
 
>それは単に、ダイアログの文言が不適切なだけであり、最初に「条件付き書式」を選んだ場合、
>[同じ入力規則]で検索すれば、「同じ条件付き書式」の検索となる。
 
確認しました。
この機能はあまり利用したことがないので、てっきり、ダイアログ表示を信じていました。
紛らわしいですね・・・・
 
こちら,Excel2007の環境です。
Excel2010,2013とは環境が違うので、
同じ症状は発生しません。

回答
投稿日時: 17/09/14 18:06:34
投稿者: わいわい

こんにちは。
とりあえずの対処方法
 
どこでもいいので、行または列を削除する。
単一セルでも良い。
 
バグはしかたないので受け入れて、対処療法で対応するか、
”[同じ入力規則]で検索” の運用をやめる。
 
私なら後者かな。

投稿日時: 17/09/14 19:59:11
投稿者: zaq-you

質問の文書が説明足らずで申し訳ありません。
(実は、質問するのは、2度目で慣れていないもので・・)
そんな中、色々ご回答いただきありがとうございます。
やりたいことは、クリップボードを使わずにコピー貼り付けを行いたかったのです。
完成したのですが、2回目以降にこの現象にのよりエラーが出てしまいます。
(For Each でやると、時間がかかったのでこの方法をとり、早くなりました)
やはりバグなのでしょうか。(仕様といわれそうですか)
最終的に、わいわいさんの回答の対処療法をとることにしました。
ただし、削除でなく、挿入でもできることを確認しましたので、セル挿入で対処します。
(どうも削除は怖いような・・・)
影響のないセルであることを確認の上、
Cells(Cells.Rows.Count, Cells.Columns.Count).Insert Shift:=xlDown, _
       CopyOrigin:=xlFormatFromLeftOrAbove
で対処します。
みなさん、本当にありがとうございました。
また壁にぶち当たったときには、質問しますのでその時には
よろしくお願いします。