- ベストアンサー
凡例の移動について(ピボットグラフ内)
ピボットテーブルから、グラフを作成しています。 凡例を表示しているのですが、これを微調整したいと考えています。 (10ミリだけ左に動かすとか、5ミリ上に動かすとか) 基本、移動不可ということは認識してるのすが、何か裏技的なものはないでしょうか? 最終的には、画面のハードコピーを切り貼りするしかないかと思っているのですが、妙案はないでしょうか? よろしくお願いします。
- みんなの回答 (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のみ。 #エラーで作成されなかったら捨て置いてください。 ピボットテーブルが必要ないのでしたら、ピボットテーブルをコピー、そのまま値貼り付けして ピボット機能を削除すれば良いだけですが、さすがにそれはナシですよね?
その他の回答 (1)
- xls88
- ベストアンサー率56% (669/1189)
移動できませんか? ドラッグで移動することは出来ると思います。 ただ手作業では、移動量を設定して移動することは出来ないと思います。 以下、Excel2007で確認しています。 まず凡例をクリックして凡例を選択します。 マウスの形が4方向の矢印状態で 凡例の枠線をドラッグしてください。 グラフ内の任意の位置に移動できます。 試しにマクロを組んでみました。 グラフを選択しておいてマクロを実行してください。 移動量を数値で指定しています。 例えば - 10 のところを + 5 と、いうように、色々に変えて試してください。 Sub test1() With ActiveChart With .Legend .Top = .Top - 10 .left = .left - 10 End With End With ActiveCell.Activate End Sub
お礼
ドラッグできないんです。。。 ちなみに、エクセル2002です。 マクロありがとうございます! 早速試してみます!
お礼
>ピボットテーブルが必要ないのでしたら、ピボットテーブルをコピー、そのまま値貼り付けして 実は、それも考えたのですが(^^;; できれば、他の方法がないかと思ってました。 マクロ、ありがとうございました!