• 締切済み

条件付き書式の条件を取得時の相対参照について

Range("対象のセル").FormatConditions(1).Formula1で条件付き書式の条件を取得しようとしています。 しかしアクティブなセルの相対参照として評価されてしまい正しい条件を取得できません。 対象のセルにいちいち移動するのも処理時間がかかってしまうし、 すべての計算式を絶対参照に変更するのも面倒です。 なにかよい方法はないでしょうか? ご教授お願いします。 環境 Windows xp sp2 Excel 2003

みんなの回答

回答No.1

Cell(y, x) を使ってみてはどうでしょうか?

poptiru
質問者

補足

回答ありがとうございます。 条件付き書式に変更をすればいいということでしょうか?それとも VBAを修正すればいいということでしょうか? VBA初心者のため出来れば例をあげてもらえると助かります。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • ExcelVBA異なる適用先範囲の条件付き書式取得

    お世話になります。ExcelVBA(Excel2007)にて質問となります。 A1:E1セルにに「1」、「2」、「-」、「4」、「5」と入っており、 条件付き書式で以下の条件が登録されている場合、 FormatConditionsコレクションのFormula1で目的の数式を取得出来ません。 条件1:数式「=A1=1」の適用先「=$A$1」 条件2:数式「=A1="-"」の適用先「=$A$1:$E$1」 イミディウィンドウで実行した結果、次のようになります。 ~~~~~~~~~~~~~~~~~~~~~~~~ debug.print range("A1").FormatConditions.Count 2 debug.print range("A1").FormatConditions(1).Formula1 =A1="-" debug.print range("A1").FormatConditions(2).Formula1 =A1="-" ~~~~~~~~~~~~~~~~~~~~~~~~ セルA1を照査対象とした場合、count数は2と得られるのですが、 FormatConditions(1).Formula1で「=A1="-"」が取得されます。 「=A1=1」を取得する方法はどうすればいいでしょうか? 条件2の適用先を「=$A$1」とした場合は意図した値を取得できました。 ~~~~~~~~~~~~~~~~~~~~~~~~ debug.print range("A1").FormatConditions.Count 2 debug.print range("A1").FormatConditions(1).Formula1 =A1=1 debug.print range("A1").FormatConditions(2).Formula1 =A1="-" ~~~~~~~~~~~~~~~~~~~~~~~~

  • 条件付書式と相対参照

    条件付書式についての質問です。 たとえば、A1:D5の範囲を選択し、書式→条件付書式→数式 A1=1 と入力します。 つまりA1に1と入力されたら、選択した範囲のセルに色がつくようにという指示です。 ところが、このA1を絶対参照にすると確かに選択範囲に色はつくのですが、これを相対参照にするとA1のセルしか色がつきません。 また $A1 と、A$1 にしても、色のつく範囲が微妙に変わります。 これはいったいなぜなんでしょう? A1 に入力したら、選択範囲のセルの色が変わるようにすればどうすればいいのでしょう? この A1 は、ほかのセルにコピーしていくので相対参照にしたいです。

  • 条件付き書式での相対参照について

    こんにちは いつもお世話になっています。 エクセル2007を使っています。 条件付き書式で相対参照にできずに困っています。 条件内容は生徒名毎に5教科内での上位1位のセルの背景色を赤、下位1位のセルの背景色を青です。 A列に番号、B列に名前、C列-G列に教科ごとの得点が入力されています。 生徒名毎にC-Gセルに条件付き書式を設定してあります。 例えば C3-G3セルを選択し、条件付き書式を以下のようにしてあります。 ルール1:上位1位、書式をセル背景色赤、適用先=$C$3:$G$3 ルール2:下位1位、書式をセル背景色青、適用先=$C$3:$G$3 このままだと下の行に書式をコピーすると失敗します。 手動で$C3:$G3としても、適用すると絶対参照に戻ってしまいます。 条件付き書式でなくとも上記のような条件内容を実現できればいいのですが、御教授お願いいたします。

  • エクセルで条件付き書式で相対参照にするには

    条件付き書式で下のセルの値と比較し条件が合致したら色を変更するというのを同じ列の複数のセルでしたいのですが、相対参照になりません。 例えばA1で条件付き書式で比較するセルを「A2」とした後、A1セルを「コピー」しA列の他のセルに「貼り付け」→「形式を選択して貼り付ける」→「書式」しても比較するセルが「A2」のままです。 これをA3なら比較するセルをA4に、A4ならA5にというようにそのセルと下のセルとを比較するようにしたいのですがどうすればいいでしょうか?

  • EXCELVBAであるセルに設定されている条件式書式を取得したいと

    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

  • Excel2003 VBAにて条件付き書式のマクロを書きたいのですが、

    Excel2003 VBAにて条件付き書式のマクロを書きたいのですが、どうも上手くいきません。 1列おき(C列、E列、G列・・・)に条件付き書式を設定し、 条件は、 ・セルの値が”0”より大きい場合はフォント”赤”で表示。 ・セルの値が”0”より小さい場合はフォント”緑”で表示。 としたいと思いマクロを組んでみました。 Sub Color() Dim j, j0 Dim x Worksheets("sheet1").Active Application.ScreenUpdating = False j0 = 3 j = 300 For x = 3 To 100 Step 2 Range(.Cells(j0, x), .Cells(j, x)).Select Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlGreater, _ Formula1:="0" Selection.FormatConditions(1).Font.ColorIndex = 3 Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlLess, _ Formula1:="0" Selection.FormatConditions(2).Font.ColorIndex = 10 Next Application.ScreenUpdating = True End Sub デバックでステップインしていくと、ここで実行時エラー1004 アプリケーション定義またはオブジェクト定義のエラーです。がでます。 Selection.FormatConditions(1).Font.ColorIndex = 3 -------------------------------------------------------------------------------------- Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlGreater, _ Formula1:="0" Selection.FormatConditions(1).Font.ColorIndex = 3 Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlLess, _ Formula1:="0" Selection.FormatConditions(2).Font.ColorIndex = 10 -------------------------------------------------------------------------------------- この間は、マクロの自動記録で書かれてるので間違ってはいないハズなのですが、、、 お知恵を下さい。 よろしくお願いします。

  • excel2000 条件付書式5つ

    A1~J10に100個の数値があり、 行ごとの1位~5位にそれぞれ書式を あたえます。 マクロの記録機能を使って1位~3位を。 その後別で4位・5位を記録し、くっつけて みました。 つけたい書式は 以下のマクロの通りのセルのパターン・フォントの色です。 以下は記録したものをくっつけてつくったマクロです。 動作しません。 Sub 条件付書式5つ() Selection.FormatConditions.Delete Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, _ Formula1:="=LARGE($A1:$J1,1)" Selection.FormatConditions(1).Font.ColorIndex = 2 Selection.FormatConditions(1).Interior.ColorIndex = 1 Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, _ Formula1:="=LARGE($A1:$J1,2)" Selection.FormatConditions(2).Font.ColorIndex = 2 Selection.FormatConditions(2).Interior.ColorIndex = 16 Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, _ Formula1:="=LARGE($A1:$J1,3)" Selection.FormatConditions(3).Interior.ColorIndex = 15 Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, _ Formula1:="=LARGE($A1:$J1,4)" Selection.FormatConditions(4).Font.ColorIndex = 2 Selection.FormatConditions(4).Interior.ColorIndex = 3 Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, _ Formula1:="=LARGE($A1:$J1,5)" Selection.FormatConditions(5).Font.ColorIndex = xlAutomatic Selection.FormatConditions(5).Interior.ColorIndex = 38 End Sub 初心者のためどうしたらいいのかまったく わかりません。 どうぞお願いします。

  • 条件付き書式のセル参照のエラー

    Excel2007 条件付き書式の問題で 「数式を使用して、書式を設定するセルを決定」でセル参照し設定すると条件つき書式がうまくいかず確認すると たとえば $A$4:$D$4とセルを選んだはずが A12345というようにセル番地ではなく数字が表示されています。 どういったエラーなのでしょうか。 また、問題解決の方法はあるのでしょうか。

  • 単一セルではなく範囲に対して条件付き書式を設定するとき

    条件付き書式について質問です。 A7:M15の範囲を「色範囲」と名前定義しているとして、 その範囲の中で「あ」から始まる文字列の場合、 フォントの色を赤色に設定したいのですが、 1つ1つのセルに対して条件付き書式を設定していくのであれば当然出来きるのはわかります。 Workbooks(book1).Sheets(sheet1).Cells("A7").FormatConditions.Add Type:=xlExpression, Formula1:= _ "=COUNTIF(A7,""あ*"")" .FormatConditions(1).interior.colorIndex = 6 Workbooks(book1).Sheets(sheet1).Cells("A8").FormatConditions.Add Type:=xlExpression, Formula1:= _ "=COUNTIF(A8,""あ*"")" .FormatConditions(1).interior.colorIndex = 6 ・・・ ・・・ ・・・ しかし、 範囲全てに対して下記の設定をしてVBAを起動 Workbooks(book1).Sheets(sheet1).Cells(色範囲).FormatConditions.Add Type:=xlExpression, Formula1:= _ "=COUNTIF(A7,""あ*"")" .FormatConditions(1).interior.colorIndex = 6 エクセル側でA8のセルの条件付き書式をみると、 =COUNTIF(A8,"あ*") と自動で行(列)が変わっているのかわかりません。 要は名前定義をした範囲選択、行番号選択、列番号選択どの場合でも、 左上に表示されたセル座標をCOUNTIFの文字列の引数に設定すればいいのでしょうか。 よろしくお願いいたします。

  • エクセルについてです。マウスで選択した範囲に、条件付き書式設定で80点

    エクセルについてです。マウスで選択した範囲に、条件付き書式設定で80点以上のセルの背景を赤にする、というマクロを作成したいと思います。選択する範囲は毎回異なります。以下のマクロはマクロの記録で作成したものです。このRangeの部分をマウスで選択した範囲に変更したいのですが、どうしたら良いのでしょうか?範囲の取得はマクロを実行して、途中で「マウスで範囲を指定してください」というメッセージを表示させてからにしたいのですが。 Sub 背景を赤() Range("B13:E19").Select Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlGreater, _ Formula1:="=80" Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority With Selection.FormatConditions(1).Font .Color = -16383844 .TintAndShade = 0 End With With Selection.FormatConditions(1).Interior .PatternColorIndex = xlAutomatic .Color = 13551615 .TintAndShade = 0 End With End Sub