• ベストアンサー

凡例の移動について(ピボットグラフ内)

ピボットテーブルから、グラフを作成しています。 凡例を表示しているのですが、これを微調整したいと考えています。 (10ミリだけ左に動かすとか、5ミリ上に動かすとか) 基本、移動不可ということは認識してるのすが、何か裏技的なものはないでしょうか? 最終的には、画面のハードコピーを切り貼りするしかないかと思っているのですが、妙案はないでしょうか? よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • end-u
  • ベストアンサー率79% (496/625)
回答No.2

裏技では無く、回りくどくて良ければ。 ダミーシート(非表示でも可)を追加して、ピボットテーブル範囲を参照する数式をセットし、 さらにその範囲を参照して『普通のグラフ』を作ればできなくもないです。 『ピボットグラフの利点が必要ない、簡単なグラフの場合』という条件付きではありますが。 ピボットテーブルの更新に備えて、グラフの元データ範囲を可変にしたければ、[名前定義]とSERIES関数を使えば良いです。 'サンプルグラフを作ってみるコード Sub try()   Dim ws As Worksheet   Dim n As String   'データシート作成   Set ws = Sheets.Add   ws.Range("A1:B4").Value = [{"f1","f2";"a",1;"b",2;"c",3}]   With ActiveWorkbook.PivotCaches.Add(xlDatabase, ws.Name & "!r1c1:r4c2") _      .CreatePivotTable(ws.Range("D1"))     .AddFields RowFields:="f1"     .AddDataField .PivotFields("f2"), , xlSum   End With   With Sheets.Add     n = .Name & "!"     '参照式セット     .Range("A1:B100").Formula = "=" & ws.Name & "!D1"     '名前定義セット     .Names.Add "cnt", "=match(""総計"",$A:$A,0)-3"     .Names.Add "name", "=offset($A$3,,,cnt)"     .Names.Add "data", "=offset($A$3,,1,cnt)"   End With   'グラフ作成   With ws.ChartObjects.Add(300, 0, 300, 300).Chart     .ChartType = xlPie     .SeriesCollection.NewSeries.Formula _        = "=series(," & n & "name," & n & "data,)"   End With   ws.Activate      Set ws = Nothing End Sub 適当なBookで実行するだけです。 マクロの内容はあまり気にせず、できたサンプルシートを参考にしてください。 #動作確認はwinXP/xl2003のみ。 #エラーで作成されなかったら捨て置いてください。 ピボットテーブルが必要ないのでしたら、ピボットテーブルをコピー、そのまま値貼り付けして ピボット機能を削除すれば良いだけですが、さすがにそれはナシですよね?

mayoeru
質問者

お礼

>ピボットテーブルが必要ないのでしたら、ピボットテーブルをコピー、そのまま値貼り付けして 実は、それも考えたのですが(^^;; できれば、他の方法がないかと思ってました。 マクロ、ありがとうございました!

その他の回答 (1)

  • xls88
  • ベストアンサー率56% (669/1189)
回答No.1

移動できませんか? ドラッグで移動することは出来ると思います。 ただ手作業では、移動量を設定して移動することは出来ないと思います。 以下、Excel2007で確認しています。 まず凡例をクリックして凡例を選択します。 マウスの形が4方向の矢印状態で 凡例の枠線をドラッグしてください。 グラフ内の任意の位置に移動できます。 試しにマクロを組んでみました。 グラフを選択しておいてマクロを実行してください。 移動量を数値で指定しています。 例えば - 10 のところを + 5 と、いうように、色々に変えて試してください。 Sub test1() With ActiveChart With .Legend .Top = .Top - 10 .left = .left - 10 End With End With ActiveCell.Activate End Sub

mayoeru
質問者

お礼

ドラッグできないんです。。。 ちなみに、エクセル2002です。 マクロありがとうございます! 早速試してみます!

関連するQ&A

専門家に質問してみよう