[[20190320113542]] 『ピボットテーブルで条件付き書式を設定する方法』(ももんが) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『ピボットテーブルで条件付き書式を設定する方法』(ももんが)

こんにちは。
ピボットテーブルを作成し、フィールドを追加、書式を変更し、
条件付き書式を設定するという流れでマクロの記録をしました。
しかし、実際にマクロを実行すると条件付き書式が設定されないため困っております。
以下にコードを記載いたしますので、原因を教えて頂けないでしょうか。
よろしくお願い致します。

'ピボットテーブルを追加、書式変更、条件付き書式設定

    Sheets.Add
    ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
        "出勤データ20180316!R1C1:R118685C21", Version:=xlPivotTableVersion15). _
        CreatePivotTable TableDestination:="Sheet1!R3C1", TableName:="ピボットテーブル1" _
        , DefaultVersion:=xlPivotTableVersion15
    Sheets("Sheet1").Select
    Cells(3, 1).Select
    With ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("社員名")
        .Orientation = xlRowField
        .Position = 1
    End With
    With ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("残業時間")
        .Orientation = xlRowField
        .Position = 2
    End With
    With ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("締め日")
        .Orientation = xlRowField
        .Position = 3
    End With
    ActiveSheet.PivotTables("ピボットテーブル1").AddDataField ActiveSheet.PivotTables( _
        "ピボットテーブル1").PivotFields("残業時間"), "データの個数 / 残業時間", xlCount
    With ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("締め日")
        .Orientation = xlColumnField
        .Position = 1
    End With
    With ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("データの個数 / 残業時間")
        .Caption = "合計 / 残業時間"
        .Function = xlSum
    End With
    ActiveSheet.PivotTables("ピボットテーブル1").PivotSelect "", xlDataOnly, True
    Selection.NumberFormatLocal = "[h]:mm"
    Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlGreater, _
        Formula1:="=""45:00""*1"
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
    With Selection.FormatConditions(1).Interior
        .PatternColorIndex = xlAutomatic
        .Color = 255
        .TintAndShade = 0
    End With
    Selection.FormatConditions(1).StopIfTrue = False
    Selection.FormatConditions(1).ScopeType = xlSelectionScope
    Range("A1").Select

< 使用 Excel:Excel2013、使用 OS:Windows8 >


 検証用のデータを用意するのが面倒でちゃんと試してないのですが、 

 これを
 ActiveSheet.PivotTables("ピボットテーブル1").PivotSelect "", xlDataOnly, True

 以下のように変更してみてください。
 ActiveSheet.PivotTables("ピボットテーブル1").PivotSelect "合計 / 残業時間" , xlDataOnly, True
(でれすけ) 2019/03/20(水) 11:58

でれすけ様

ご回答をありがとうございました。
試してみましたが、実行時エラー1004となり、アイテム名が見つかりません・・・と
表示をされできませんでした。
(ももんが) 2019/03/20(水) 13:06


 ごめんなさい。
 先の回答は忘れて、元に戻してください。

 昼休みにちゃんとデータダミーデータつくってやってみました。

 問題は、ここのようなので、
    Selection.FormatConditions(1).ScopeType = xlSelectionScope

 このようにしてみてください。
    Selection.FormatConditions(1).ScopeType = xlDataFieldScope
(でれすけ) 2019/03/20(水) 13:13

でれすけ様

うまくいきました。
ありがとうございました。
大変助かりました。

(ももんが) 2019/03/20(水) 13:17


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.