グレイのフィールドボタンに飽きたら

今回は、レイアウト上に配置したフィールドのボタンの背景色を変えるマクロです。

XL2003 までのピボットテーブルでオートフォーマットがクラシックピボットテーブル(規定値)の場合、配置したフィールドは、フォームのボタンのようにグレイの背景色になります。
ずっと使っていると、そろそろ背景色を取ってみようとか、明るい背景色にしてみたい、とか思いませんか? ボタンの背景色を変えただけでも、ピボットテーブルの見た目がガラリと変わります。お試しください。

 ◇ ◇ ◇ ◇ ◇

今回のサンプルマクロ(PvtFldColorChange)の内容ですが、各フィールドの Orientation プロパティで配置された位置を調べて、フィールドが、ピボットテーブル上に表示されていれば、そのフィールドのボタンの背景色を変更する、という処理をしています。ボタンの位置は、PivotSelect の引数 Mode にある xlButton を利用しています。

汎用的なマクロとして作成しているので、マクロの引数として PivotTable と ColorIndex を指定させています。適当なピボットテーブルを作成してから PvtFldColor を実行すれば、PvtFldColorChange を呼び出して指定したピボットテーブルのボタンの背景色を変更します。

サンプルでは色を統一していますが、少し手直しすれば、各エリア毎にボタンの色を変更したり、特定のフィールドだけ変更するという処理もできます。いろいろ工夫してみてください。

ちなみに、XL2007 では、デザインメニューから多種多様なスタイルを選べるようになったほか、自分で好きなスタイルを作って登録しておくこともできるし、設定できる項目も増えているので XL2003 までとは違った取り組み方ができるのではないかと思います。

 ◇ ◇ ◇ ◇ ◇

Sub PvtFldColor()
'適当なピボットテーブルを作ってから試してね

  'PvtFldColorChangeによりフィールドボタンの色を変える
  Call PvtFldColorChange(PvtTbl:=ActiveSheet.PivotTables(1), myColor:=40)

End Sub



Sub PvtFldColorChange(ByVal PvtTbl As PivotTable, myColor As Long)
'指定されたピボットテーブルのフィールドボタンの色を変える

  Dim PvtFld As PivotField
  With PvtTbl
    For Each PvtFld In .PivotFields
      If PvtFld.Orientation <> xlHidden Then
        .PivotSelect Name:=PvtFld.Name, Mode:=xlButton
        Selection.Interior.ColorIndex = myColor
      End If
    Next PvtFld
    .PivotSelect Name:="", Mode:=xlOrigin
    With Selection
      .Interior.ColorIndex = xlNone
      With .Cells(1)
        If .Value <> "" Then
          .Interior.ColorIndex = myColor
        End If
        .Select
      End With
    End With
  End With

End Sub

comment

Secre

カテゴリ
テーマ
プロフィール

Author:OtenkiAme(Tasan)
正早安楽を目指しながらも、言うことを聞かないExcelに使われている人です。

ブログ内検索
FC2カウンター
最近のコメント
最近のトラックバック
RSSフィード