エクセルVBAについて質問です。

エクセルVBAについて質問です。 Sheet2のI4:I23 に条件付き書式で Sheet1 のAG4とSheet2のI4が同じ出ないときに文字を赤くするというマクロを 記録をもとに作りました。 Sub Macro2() Range("I4:I23").Select Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _ "='Sheet1'!$AG4<>$I4" Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority With Selection.FormatConditions(1).Font .Color = -16776961 .TintAndShade = 0 End With Selection.FormatConditions(1).StopIfTrue = False End Sub Sheet3ができたときは Sheet2 のAG4とSheet3のI4が同じ出ないときに文字を赤くすると 言う風に一つ前のシートのAG4を参照したいのですが、 上記マクロの'Sheet1'!というところにActiveSheet.Previous.Selectみたいなものを 代入することは可能でしょうか? そのまま張り替えるとエラーが出てしまうので、お分かりの方いましたら 助言お願いします。

補足

すいません。日本語おかしかったです。 同じ出ないとき。 同じでないときです。

Visual Basic62閲覧xmlns="http://www.w3.org/2000/svg">50

ベストアンサー

0

↓のプログラムを試してください。 Sub Macro2() Dim sh As Worksheet, xFormula As String Set sh = ActiveSheet.Previous If sh Is Nothing Then MsgBox "左側にワークシートがありません" Exit Sub End If xFormula = Replace("='@'!$AG4<>$I4", "@", sh.Name) With Range("I4:I23") .FormatConditions.Add Type:=xlExpression, Formula1:=xFormula .FormatConditions(.FormatConditions.Count).SetFirstPriority With .FormatConditions(1).Font .Color = -16776961 .TintAndShade = 0 End With .FormatConditions(1).StopIfTrue = False End With End Sub

ThanksImg質問者からのお礼コメント

できました!ありがとうございます。 特に '@'!に変数を代入することと、変数ShにActiveSheet.Previousを 指定するのは、とても勉強になりました。 ありがとうございました。

お礼日時:2016/1/18 14:50