前提・実現したいこと
Excel VBAにて数式を利用した条件付き書式を記述しています。
演算結果を表示するR列の値が0の場合、当該行の背景色を消去して、1以上の場合は、背景色を表示するという形です。
発生している問題・エラーメッセージ
プロシージャの呼び出しが不正といわれてしまいました。
どこがおかしいのでしょうか?
該当のソースコード
VBA
1Dim fc As FormatCondition 2Dim MRow As Long 3Dim MCol As Integer 4Dim Ws As Worksheet 5Private Sub shiwake1() 6Set Ws = Worksheets(3) 7MRow = Ws.Cells(Rows.Count, 3).End(xlUp).Row '最終行番号を取得する 8MCol = Ws.Cells(2, 2).End(xlToRight).Column '右端列番号を取得する 9For i = 3 To MRow '各行に数式を追加する 10 Ws.Cells(i, 11).Value = "-": Ws.Cells(i, 13).Value = "-": Ws.Cells(i, 15).Value = "-" 11 Ws.Cells(i, MCol - 1).Value = "=" '減算記号と等号を出力する 12 Ws.Cells(i, 12).Value = "0": Ws.Cells(i, 14).Value = "0": Ws.Cells(i, 16).Value = "0" '数値の初期値を出力する 13 Ws.Cells(i, MCol).Value = "=J" & i & "-(L" & i & "+N" & i & "+P" & i & ")" '数式を出力する 14 15 Set fc = Range(Ws.Cells(i, 3), Ws.Cells(i, MCol)).FormatConditions.Add(xlExpression, , "=$R" & "$" & i & " = " & "0") 16 Set fc = Range(Ws.Cells(i, 3), Ws.Cells(i, MCol)).FormatConditions(1) ' 1 つ目の条件付き書式を取得 17 fc.Interior.ColorIndex = xlNone '条件式に一致する場合、『背景色を消去』する 18 For j = 12 To 16 Step 2 '数値の間処理をする 19 Ws.Cells(i, j).NumberFormatLocal = "G/標準" 'セルの表示形式を設定する 20 Next 21 合計(CInt(Ws.Cells(i, 6).Value)) = 合計(CInt(Ws.Cells(i, 6).Value)) + CInt(Ws.Cells(i, 10).Value) 22 Next 23 24End Sub
set fc …という数式を指定する行で止まってしまいます。
デスクトップPCでコードを記述して、ノートPCで処理を実行する方式を採用しており、コードを記述したデスクトップPCでは条件付き書式が設定できたのですが、実行するノートPCにファイルをコピーして実行してみたところ、数式を利用した条件付き書式設定がプロシージャの不正となってしまいました。Excelのバージョン等で利用不可であれば諦めます。

回答5件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。