• ベストアンサー

エクセルのグラフ位置をマクロで調整したい

約150人分のデータを一人分ずつグラフにして、そのグラフを準備したワークシート(エクセル)の特定の位置に貼り付けたいのです。 マクロを使ってグラフをつくるところまではできたのですが、所定の位置に移動させることができないのです。150人分のデータなので一つ一つやっていたらきりがないので、マクロを使ってグラフの位置を移動させたいのですがなかなかできません。マクロを使うといっても、「新しいマクロを記録」→「記録終了」の流れでしか使えません。誰かアドバイスをお願いします。今回初めて教えてgooを利用します。

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

  • ベストアンサー
  • nag0720
  • ベストアンサー率58% (1093/1860)
回答No.2

ChartオブジェクトにLeftプロパティ、Topプロパティがあると思ってたのですが、ないようですね。失礼しました。 ActiveSheet.Shapes(グラフ名)にはLeftプロパティ、Topプロパティがありますのでこれを使用してください。 ただし、グラフ名は実行するたびに変わるため注意が必要です。 次のコードを最後の「End Sub」の前に追加してみてください。 GName = Mid(ActiveChart.Name, Len(ActiveSheet.Name) + 2) With ActiveSheet.Shapes(GName) .Left = 100 .Top = 100 End With Left,Topの数値は適当に調整してください。 余談ですが、グラフの幅(Width)、高さ(Height)も同様に変えられます。

h19701017
質問者

お礼

ありがとうございます。確かにグラフの貼り付け位置が変わりました。少しずつ数値を変更して、ぴたりの位置を見つけたいと思います。大変参考になりました。マクロに少し興味が湧いてきました。  ありがとうございました。分かりやすいアドバイスに感謝いたします。

その他の回答 (1)

  • nag0720
  • ベストアンサー率58% (1093/1860)
回答No.1

マクロでグラフをつくれるなら、あとはそのオブジェクトのLeftプロパティ、Topプロパティに位置をセットするだけなのでは?

h19701017
質問者

お礼

さっそくの回答ありがとうございます。参考にしてやってみました。ただ当方、マクロについては、プログラムを自分で組むことは無理で、実際にグラフ作成の手順をやってそれを覚えさせる程度しかできません。そこで、Leftプロパティなるものをどこにどのように挿入すればいいのか分からないのです。プログラムを見てみると次のようになっていました。 Range("B7:G9").Select Charts.Add ActiveChart.ChartType = xlLineMarkers ActiveChart.SetSourceData Source:=Sheets("個人票生成シート").Range("B7:G9"), PlotBy _ :=xlRows ActiveChart.Location Where:=xlLocationAsObject, Name:="個人票生成シート" With ActiveChart .HasTitle = False .Axes(xlCategory, xlPrimary).HasTitle = True .Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "教科" .Axes(xlValue, xlPrimary).HasTitle = True .Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "偏差値" End With End Sub 何か分かることがありましたら、また教えてくださいませんか。

関連するQ&A

  • マクロでグラフ作成

    マクロを使って、各シート(ひな型は同じでデータが各々違う)の特定の部分のデータから折れ線グラフを書こうとしています。 しかし、どのシートでマクロを実行しても、最初にマクロを記録したシートのデータからグラフができてしまいます。 マクロの保存法が悪いのでしょうか? 相対参照で記録、なども試してみましたが駄目でした。 どなたかお分かりになる方、助けてください。

  • マクロでグラフ

    sheet2にある3項目の24時間の変化のデータをグラフウィザードとマクロの自動記録を使用してsheet1の指定した位置と大きさで折れ線グラフで(同時に線の色とフォントサイズも指定)作成する方法を教えてください。

  • エクセルでマクロを利用してグラフを作りたい

    エクセルでマクロを利用してグラフを作りたいです。 Sheet1で作ったマクロを、Sheet2でも動かす方法を教えてください。 マクロはド素人なのでいつも自動記録で作成しています。 シートはSheet1はSeet23まであり、各シートのデータのある場所は全て同じです。 今回は、Sheet1でマクロを自動記録させて作りました。 Sub Macro1() Range("G1:M6").Select ActiveSheet.Shapes.AddChart.Select ActiveChart.SetSourceData Source:=Range("'Sheet1'!$G$1:$M$6") ActiveChart.ChartType = xlLine Range("G22").Select End Sub これをSheet2でも動かしたらSheet2にSheet1のデータを参照してグラフが出来てしまいました。 各シートで動かしたら、そのシート内のデータを読み取り、グラフを作る方法を教えてください。 大変困っています。よろしくお願いします。

  • EXCELのマクロ グラフについて

    こんばんは、 グラフ作成のマクロをつくっています。 グラフ作成対象の範囲が不定なので、 範囲は、AA;KKという範囲にしました。 実はその表の、下部に合計欄がありました。 合計値項目があっても、グラフ化する方法があるかどうか?と、記録マクロの途中で ActiveChart.SetSourceData Source:=Sheets("Sheet3").Range("C7:D10"), PlotBy _:=xlColumns がありましたが、この分をコメントにしました。何か影響はありますか?

  • マクロを利用したグラフ編集

    マクロの初心者です。 エクセルで作成したグラフを画像として保存させたいのですが、うまくいきません。 マクロの記録開始→グラフのコピー→ 別シートにグラフを貼り付け→グラフを切り取る→ 形式を選択して貼り付け(図)→ 図の大きさを変更(図のプロパティから) →マクロの記録終了 こんな感じでマクロを組んだのですが、エラーが出て上手く実行できません。 私の感じでは図の大きさの変更が上手く記録できていないような気がします。 マクロ編集で書かれているような言語は全くわからないので、上記のような方法で上手く記録させることはできないでしょうか? できないのであれば、グラフの大きさを変更できるような言語の書き方を伝授ください。

  • EXCELマクロで順番にグラフをつくるには?

    エクセルマクロ・VBA初心者です。 現在、グラフ作成で困ってます。 お詳しい方、よければアドバイスを下さい! 作成したいグラフは、元データが5000行×50列で、 1番左列に時刻、2列目からデータとなっており、 1-2列、1-3列、1-4列、・・・・1-50列 という感じの一般的な時系列グラフを多量につくりたいのです。 これをマクロを使って、別シートにグラフ(散布図)を並べて作るというものです。 さらに、別に用意したグラフの名称を並べたセルから、 順に、上記グラフのタイトルとして入力していきたいのです。 これをVBAを使って行いたいのですが、 一体どうすればいいのでしょうか? 「マクロの記録」では、 ■「50列目まで順番にグラフをつくれ!」 ■「名前を順番に入れていけ!」 という命令が私には作れません。 お詳しい方、ご返答宜しくお願い致します。

  • Excel マクロでグラフの凡例の位置を変更したい

    はじめまして。 Excelマクロ初心者です。 現在、Excelのグラフの凡例の位置を変更するマクロが作れなくて困っております。 =前提条件=     ・マクロを記録するbook(1)とグラフを含むbook(2)は別のファイル     ・book(1)よりマクロを実行し、book(2)を開き、グラフの凡例の位置を変えたい =book(2)の構成=     ・複数のシートが存在(Hiddenも存在)     ・各シートにグラフが複数存在 =現時点で作成したマクロ= Sub graph()   Workbooks.open "C:\********\book(2).xls"   Workbooks("book(2).xls").Active   Dim i AS Integer, wsCnt AS Integer i = 0 wsCnt = Worksheets.Count   For i = 0 To wsCnt Worksheets(i).Active If ActiveSheet.Visible = -1 - xlSheetVisibe Then For Each ChartObject In ActiveSheet.ChartObjects      With ActiveChart ActiveChart.ChartArea.Select ActiveChart.HasLegend = True ActiveChart.Legend.Select Selection.Position = xlBottom End With Next ChartObject End If Next i End Sub 現在、各シートがActiveになることまでは確認できています。 各グラフを掴めているかは確認できておりません。 以上となります。 ご多忙とは思いますが、ご教授いただけると幸いです。 宜しくお願い致します。

  • エクセルのグラフをマクロで縮小化したい

    office2007。Vistaを使用。 エクセルのグラフを縮小するマクロを記録ボタンで作成しました。画面上は縮小されるのですが、「マクロの記録」ではそれが記録されません。office2003で作成したときは zoom を使用したような気がしますが、2007ではどうしたらよいのでしょうか?お教えください。A1B5 にデータが入っています。 Sub Macro1() ' Macro1 Macro Range("B2").Select ActiveSheet.Shapes.AddChart.Select ActiveChart.SetSourceData Source:=Range("'Sheet1'!$A$1:$B$5") ActiveChart.ChartType = xlColumnClustered ActiveChart.Location Where:=xlLocationAsNewSheet ActiveSheet.ChartObjects("グラフ 1").Activate ActiveSheet.ChartObjects("グラフ 1").Activate Sheets("Sheet1").Select Range("A1").Select End Sub

  • 9つのエクセルのグラフ(円グラフ)の大きさと位置を一気に揃える

    いまエクセルの一つのシートに、大きさも位置もばらばらな円グラフが9つならんでいます。これらの大きさを一緒にし、かつ一列にきれいに並べたいのですが、何かよい方法があれば教えてください。  あと、重ねての質問で恐縮ですが、円グラフの中のデータラベルの位置を動かそうとすると、円グラフの大きさもつられて変わってしまいます。円グラフの大きさはそのままで、データラベルの位置だけを変える方法があったら教えてください。

  • エクセルのマクロでグラフオブジェクトを指定位置に移動?

    お世話になります。 エクセル2000のマクロで困っています。 Range("indirect(AR69)").Select Charts.Add ActiveChart.ChartType = xlLineMarkers ActiveChart.SetSourceData Source:=Sheets("前年比").Range("indirect(AR69)"), PlotBy _ :=xlColumns ActiveChart.Location Where:=xlLocationAsObject, Name:="前年比 このマクロ(自動記述)でシート「前年比」にグラフオブジェクトを作りました。 このグラフを指定したセル位置に移動するのはどうすればいいでしょうか。 具体的にはセルAB5の左上の角にグラフの左上をピッタリ重ねたいのです。 あと、グラフオブジェクトに名前をつけて、このグラフを選択する時に名前で選択できるでしょうか。 "グラフ 6964"みたいに通し番号が付けられていて非常にやりにくいのですが。 よろしくお願いします。