• 締切済み

Excelでグラフのサイズを揃える

Excel97/2000のVBAを使って、埋め込みグラフのサイズなどを既存のグラフから設定を読み込み、別のグラフを同じサイズに設定するマクロを作成していますが、PlotAreaの位置と大きさだけがうまく動作しなくて困っています。 PlotAreaのWidth,Left,Height,Topの設定が上手くいかないのです。 ChartObjectのサイズより大きくWidthを設定できないとか、軸ラベルが入らないほど小さくは設定できないとかいうことは知っていて、そういう制限がないサイズや位置に設定しようとしても上手くいかない(たまに上手くいくときがあるのですが、どういう時に上手くいくのかはつかめていません) ネットで調べても、PlotAreaのサイズ設定に関しては、難儀している人が多く、上手くいったという話を見つけたことがありません。 PlotAreaの設定を上手くやる方法はあるのでしょうか?具体的なコツやポイントなどありますか?

みんなの回答

回答No.1

えっと...例えば ActiveChart.PlotArea.Select Selection.Left = leftVal Selection.Top = topVal Selection.Width = widthVal Selection.Height = heightVal のようにしているのであれば、 ActiveChart.PlotArea.Select Selection.Width = 0 Selection.Height = 0 Selection.Left = leftVal Selection.Top = toVal Selection.Width = widthVal Selection.Height = heightVal のようにしてみてはいかがでしょうか。

関連するQ&A

  • グラフのサイズを揃えたいのでVBAを使っていたのですが、数値軸の最大値

    グラフのサイズを揃えたいのでVBAを使っていたのですが、数値軸の最大値などが異なる際は、 プロットエリアでは、幅が揃えられません。というのも、色々試した結果・・・ プロットエリアサイズは、数値軸の文字左側からグラフの右端までの長さを規定しているようなのです。 そこをグラフの箱部分のサイズを揃えることを可能にできないでしょうか? '// データを取得 With ActiveChart chtH = .Parent.Height chtW = .Parent.Width chtPH = .PlotArea.Height chtPW = .PlotArea.Width End With 現在上記のマクロで調整したグラフからサイズを取得し、他のグラフのデータを書き換えるという マクロを組んでいます。参考までにグラフを載せておきます。 この2つのグラフは、このマクロを使って揃えましたが、最大値が異なるため横幅が揃いません。 最大値を揃えると横幅が綺麗に揃います。しかしそのようにするとグラフが見難くなるためできません。 どなたかアドバイスをお願いします。 手動で揃えるには、大変な量なので・・・

  • Excelマクロ・グラフエリア・プロットエリアのサイズを変更及び綺麗に並べる

    何方か、宜しくお願いします。 質問1 ワークシート上の複数のグラフを選択した状態でマクロを実効して 全てのグラフエリア・プロットエリアを同じサイズに変更するマクロを 教えて下さい。 (下記のコードでは、一つのグラフのプロットエリアのみ変更になります。) Sub グラフサイズ() ActiveSheet.ChartObjects("グラフ 1").Activate ActiveChart.PlotArea.Select 'プロットエリア With Selection .Top = 17 .Left = 27 .Width = 463 .Height = 330 End With Range("A3").Select End Sub (参考:http://oshiete.nikkeibp.co.jp/qa780484.html) 質問2 質問1で修正したグラフを3列、行数は任意でワークシート上に綺麗に並べたい のですが、どのようなコードでしょうか。?(グラフとグラフの間は5ポイント位 隙間を入れたいと思います。グラフ数は20~40位、Excel2000)

  • エクセルでグラフの大きさを固定させるには

    たびたびすみません。Excel2000(office2000 SP-3)のグラフについての質問です。 グラフの大きさをそろえようとして、下記のマクロを実行し(過去のアドバイスを参考にさせていただきました)、全てそろえました。(1シート内にグラフが25個) しかし、画面表示のズーム%(25%←→75%)を変え、もとにもどすと、どうやら、そのときにグラフプロットエリアの大きさが変わっているようなのです。 他にも原因があるかもしれません。 なんとか、グラフの大きさを固定させたいのですが、どうしたらよいのでしょうか。 少しでもヒントがありましたら、アドバイスお願い致します。 Sub グラフ揃える2() ActiveChart.PlotArea.Select Selection.Width = 255 Selection.Left = 25 Selection.Height = 244 Selection.Top = 25 ActiveChart.HasLegend = True ActiveChart.Legend.Select Selection.Position = xlRight End Sub

  • Excel VBA でグラフタイトルの位置変更

     Excelで作成したグラフのタイトルの、(左の位置や幅は文字数で違ってくるので、)TopとHeightを、VBAを使って変更しようと思っています。 それで、以下のようなコードを書いてみたのですが、 「引数の数が一致しません または不正なプロパティを使用しています」 とのエラーメッセージが出てしまい、実行できません。 ChartTitle.Left などの引数の型はDoubleのようなので、 ' Dim T, L, H, W As Double としてみましたが、変化はありません。 Sub ChangeChartTitlePos() 'Excel VBA でグラフタイトルの位置変更 ' Dim T, L, H, W As Double T = 2: L = 68.4: H = 26.4: W = 220 With ActiveChart.ChartTitle .Top = T .Height = H ' .Left = L ' .Width = W End With End Sub  どなたか解決方法をご教授頂ければ幸いです。  また、VBAを使わずにグラフのタイトルのTopとHeightを任意の値に変更する方法がありましたら、その方法も教えて頂ければと存じます。  よろしくお願いします。 追記  ちなみに、プロットエリアの変更は、以下のコードで処理できています。 Sub ChangePlotArea() With ActiveChart.PlotArea .Top = 36.4 .Left = 7 .Height = 190.6 .Width = 274.5 End With End Sub

  • パワーポイントVBAでグラフのサイズ・位置を統一

    パワーポイントVBAに貼付けた複数のグラフサイズを統一したいと思っています。 1~20枚目のスライドに、それぞれ2つのグラフが貼付けてあります。 全てのグラフサイズ・位置を統一したいと思い、以下の様なVBAを書いてみました。 ---------- Sub 表サイズの統一() Dim myTop1, myLft1, myHgt1, myWdt1, cnt, i, myTop2, myLft2, myHgt2, myWdt2 With ActivePresentation.Slides(1).Shapes(1) myTop1 = .Top myLft1 = .Left myHgt1 = .Height myWdt1 = .Width End With With ActivePresentation.Slides(1).Shapes(2) myTop2 = .Top myLft2 = .Left myHgt2 = .Height myWdt2 = .Width End With cnt = ActivePresentation.Slides.Count For i = 2 To cnt With ActivePresentation.Slides(i).Shapes(1) .Top = myTop1 .Left = myLft1 .Height = myHgt1 .Width = myWdt1 End With Next For i = 2 To cnt With ActivePresentation.Slides(i).Shapes(2) .Top = myTop2 .Left = myLft2 .Height = myHgt2 .Width = myWdt2 End With Next End Sub ---------- 各スライドにある1つ目のグラフのサイズは統一出来たのですが、2枚目のグラフは何の変化もおきません。 どこが悪いのか、どなたかご教示頂ければ幸いです。 どうぞよろしくお願い致します。

  • VBA(Excel)でのグラフの取り扱い

    VBA(Excel)でのグラフを取り扱いたいのですが、 オブジェクトの関係が良く分からないので教えて下さい。 以下のオブジェクト Chart,ChartObject,Shape,ChartArea,DrawingObject,PlotArea の関係とそれぞれ何をさしているのか教えて下さい。

  • エクセルグラフの項目名を折り返されない様にしたい

    VBScriptにてエクセルを使用してグラフを作成し、作成したグラフを画像として保存する処理を行っています。 横棒グラフでY軸の項目名(ラベル)が長すぎて折り返されてしまう事があります。 折り返された結果、中央寄せになってしまって見栄えが悪い為、何とかしたいです。 (項目名をすべて表示、又は左寄せにしたい) 項目名はVBScriptを実行する度に値が変わります。 フォントサイズは8(これ以上小さくはできません)、最大文字数は全角半角含めて40文字程度です。 何か良い方法は無いでしょうか? 下記の事は試しました。 (1)グラフの全体サイズを大きくする。  →項目名が1行で表示されるまで大きくした所、あまりにもグラフサイズ大きくなりすぎたので、できれば避けたい。 (2)プロットエリアの幅を調整する。  →PlotAreaのwidthでプロットエリア全体の調整は可能な様ですが、項目名の部分の幅は変わりませんでした。   プロットエリア内部のグラフ部分の幅を狭くできれば項目名を全て表示できるのではないかと思ったのですが、PlotAreaのInsideWidthは参照のみな様で、設定はできませんでした。 (3)Y軸の項目名を非表示にして、プロットエリアを右に移動し、分類名ラベルを左に異動する。  →分類名ラベルも折り返し表示になっており、サイズ変更不可らしく1行表示ができませんでした。

  • グラフでサイズ変更できなくなってしまいました。

    エクセルでグラフを作りました。グラフのサイズなどは左クリックしてそののち上下左右や斜めにできた黒い四角にマウスのポインタを持っていくと矢印が変わるのでそれで左クリックしたまま動かすとサイズが変更します。しかしy軸にある数値軸ラベルは四角にポインタを合わせても何も変化が起こりません。これって何が原因かわかりますか?教えてください。数値軸ラベルはグラフのオプションでy数値軸というところに入れた文字で全部出てこないで一部隠れてしまっています。

  • VBA 全グラフに適応されない理由

    お世話になっております。 Excel2003を使用しております。 1400個のグラフを自動作成しております。 -------------------------------- Function GlaphSetting() 'グラフ色などの設定 Dim C As ChartObject On Error Resume Next For Each C In ActiveSheet.ChartObjects ' C.RoundedCorners = True C.Chart.AutoScaling = False C.Chart.PlotArea.Interior.ColorIndex = xlNone C.Chart.PlotArea.Border.ColorIndex = xlNone 'プロットエリアの色を消す C.Chart.Axes(xlValue).MaximumScale = 5 'メモリ最大値 C.Chart.Axes(xlValue).MinimumScale = 0 'メモリ最小値 C.Chart.Axes(xlValue).MajorUnit = 1 'メモリ間隔 If ComboBox4.Text <> "" Then '氏名が入ってると、メモリ-1にしたい! C.Chart.Axes(xlValue).MinimumScale = -1 'メモリ最小値 C.Chart.PlotArea.Top = 50 C.Chart.PlotArea.Width = 100 C.Chart.PlotArea.Height = 100 C.Chart.PlotArea.Left = 50 End If If ComboBox4.Text = "" Then '氏名が空のとき C.Chart.Axes(xlValue).HasMajorGridlines = False End If C.Chart.ChartArea.Font.Size = 8 '全部のフォントサイズ Next End Function ---------------------------- 上記方法でフォントサイズの設定等を行っているのですが、 全グラフの文字サイズが8になっていなく、 ActiveSheet.ChartObjectsの個数は制限があるのか?なんて思っております。 間にプログレスバーの表示を行っておりますが、 しっかり全部動いているみたいであり、 1400個中、33個目くらいまでしか フォントサイズが変わっておりません。 ステップインで確認してみましたが、 ステップインだと33個以上も大丈夫な気がします。 何か、理由をご存知の方がいらっしゃいましたら 回答をお願い致します。

  • Excelの複合グラフの項目軸を下に移動させる方法を教えてください。

    Excelで複合グラフを作成しました。 業務分析の指標を折れ線(第一数値軸)で、 実数を縦棒(第ニ数値軸)で現しました。 そうしたら自動的に2つのグラフの境界線(グラフの真ん中)に項目軸と目盛ラベルが配されました。 これらをグラフの外(下)に移動させるのが今回の目的です。 目盛ラベルは「軸の書式設定」の「目盛ラベル」で「下端/左端」に設定したら希望の位置に移動することが出来ました。 項目軸(線)だけが真ん中に残りました。 この軸も目盛ラベルと同じ位置の下に移動させたいのですが、複合グラフの場合は出来ないのでしょうか? 出来るとしたら、どんな設定をすればいいのでしょうか? ご存知の方がいらっしゃいましたらご教示ください。 よろしくお願いいたします。

専門家に質問してみよう