• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:excel 2000 グラフを元の位置に図貼り付け)

Excel 2000でグラフを元の位置に図貼り付け

このQ&Aのポイント
  • Excel2000を利用している場合、アクティブなシートに作られている全てのグラフを図に変換し、元の位置に同じ大きさで貼りなおしたいです。
  • サイトを調べた結果、下記の記述でグラフを図として貼り付けることはできました。しかし、元の位置に貼り付ける方法が分かりません。
  • 修正方法を教えていただけないでしょうか?ご指導よろしくお願いします。

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

  • ベストアンサー
  • tsubuyuki
  • ベストアンサー率45% (699/1545)
回答No.2

失礼。 CTop = Selection.Top: CLeft = Selection.Left '追加 上記を CTop = s.Top: CLeft = s.Left '追加 これで。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • tsubuyuki
  • ベストアンサー率45% (699/1545)
回答No.1

コピーを取る前にグラフを選択するでしょうから、 その時についでに   .Top   .Left で、上端と左端の座標を拾って、変数に入れておき、 貼り付けた後でその座標まで持っていけばよろしいかと。 例えば、質問中のコードをそのまま使うなら Sub グラフを図として貼る() Dim s As Object Dim CTop As Single, CLeft As Single '追加 For Each s In ActiveSheet.ChartObjects s.Activate ActiveChart.ChartArea.Select CTop = Selection.Top: CLeft = Selection.Left '追加 ActiveChart.CopyPicture Appearance:=xlScreen, Size:=xlScreen, Format:=xlPicture Range("A1").Select '追加 ActiveSheet.Pictures.Paste.Select 'ちょっと修正 Selection.ShapeRange.IncrementLeft CLeft '追加 Selection.ShapeRange.IncrementTop CTop '追加 Next End Sub これでとりあえずできると思いますよ。

puyopa
質問者

お礼

回答ありがとうございます。 早速、確認させていただいたところ、A1セルに貼り付けとなっていました。 ActiveSheet.Pictures.Paste.Select 'ちょっと修正 Selection.ShapeRange.IncrementLeft CLeft '追加 Selection.ShapeRange.IncrementTop CTop '追加 の部分が効いていないと思います。さらに修正のアドバイスを頂ければ幸いです。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセル・マクロでグラフを最背面に移動させたい

    エクセルのグラフを3つピッタリと重ねて表示しています 後ろのグラフを選択する時「最背面に移動」させてますが これをマクロにしたいです とりあえずマクロの記録でしてみたら Sub Macro1() ActiveSheet.ChartObjects("グラフ 7").Activate ActiveChart.ChartArea.Select Selection.ShapeRange.ZOrder msoSendToBack ActiveWindow.Visible = False Windows("Book1.xls").Activate Range("A1").Select ActiveSheet.ChartObjects("グラフ 5").Activate ActiveChart.ChartArea.Select Selection.ShapeRange.ZOrder msoSendToBack ActiveWindow.Visible = False Windows("Book1.xls").Activate Range("A1").Select ActiveSheet.ChartObjects("グラフ 2").Activate ActiveChart.ChartArea.Select Selection.ShapeRange.ZOrder msoSendToBack ActiveWindow.Visible = False Windows("Book1.xls").Activate Range("A1").Select End Sub と出来たのですが、マクロの実行そしてみると3列目の Selection.ShapeRange.ZOrder msoSendToBack の所で、 「実行時エラー438 オブジェクトはこのプロパティまたはメソッドをサポートしてません」 となってしまいます、どうすればよいのでしょう ボタンを押したら最前面のグラフが最背面に移動するようにしたいのですが難しいのでしょうか

  • エクセルのグラフ

    グラフが貼り付けられているシートを見えない状態でグラフ描画したいのですがうまくいきません ちなみに、今のコードはこうです。 Sub 電力力率表示() ActiveSheet.ChartObjects("グラフ 3").Activate ActiveChart.SeriesCollection(2).Select ActiveChart.SetSourceData Source:=Sheets(s_NAME) _ .Range("A2:C146"), PlotBy:=xlColumns End Sub

  • Excel VBA グラフを任意sheetに移動させるには?

    アクティブになっているsheetのグラフを参照し、 それを『まとめ』sheetに移動して張り付ける。 現在 ★マークのところでエラーになっています。 オブジェクトは、このメソッドをサポートしていません…と、これは何のエラーになるのでしょうか? アドバイスお願い致します. Sub test() Dim str As String ★str = ActiveSheet.ChartObjects.Name 'strにグラフ名を代入 ←不具合中… Sheets("まとめ").Activate '---sheet 『まとめ』を アクティブにする ActiveSheet.ChartObjects(str).Activate ActiveChart.Paste End Sub

  • Excelマクロによるグラフの消去方法

    Excelマクロ初心者です。 マクロで、グラフを消去する操作をさせたいのですが、どのグラフを消去するかというグラフの指定をどうしたら良いか悩んでいます。 単純に記録マクロでやってみると、以下のようになりました。「グラフ1」といったグラフの名前が分かっていればこれをそのまま応用すればいいのですが、グラフの名前が不明の場合にはどうしたらよいのでしょうか。マクロの中で、グラフの位置などから、グラフの名前を取得するといったようなことなどできるのでしょうかね。どういった方法でも結構ですので、よろしくお願いいたします。 Sub Macro1() ActiveSheet.ChartObjects("グラフ 1").Activate ActiveChart.ChartArea.Select ActiveWindow.Visible = False Selection.Delete End Sub

  • グラフの参照元を相対参照で記述するには

    マクロ初心者です。 あるグラフを最初テンプレートで作っておいて、他のデータでも簡単に同じグラフを作れるようにしたいです。 マクロの記録で「相対参照」があったので、これでできると思ったのですが、グラフのセルは絶対参照になるようです。下記のようになってりまいます。 Sub Macro6() ' ' Macro6 Macro ' ' ActiveSheet.ChartObjects("グラフ 1").Activate ActiveChart.PlotArea.Select ActiveSheet.ChartObjects("グラフ 1").Activate ActiveCell.Select ActiveSheet.ChartObjects("グラフ 1").Activate ActiveChart.PlotArea.Select ActiveSheet.ChartObjects("グラフ 1").Activate ActiveChart.SeriesCollection(1).XValues = "='Sheet1'!J3:J11" ActiveChart.SeriesCollection(1).Values = "='Sheet1'!M3:M11" ActiveChart.SeriesCollection(2).XValues = "='Sheet1'!J3:J11" ActiveChart.SeriesCollection(2).Values = "='Sheet1'!P3:P11" ActiveCell.Select End Sub 具体的にやりたい動作は、 1.相対的な場所を決定するセルを選択(表の左上のセルなど) 2. ActiveChart.SeriesCollection(1).XValues = "='1.のセルから右に2列進んだセル:1.のセルから右に2列下に8列進んだセル" ActiveChart.SeriesCollection(1).Values = "='1.のセルから右に4列進んだセル:1.のセルから右に4列下に8列進んだセル" ActiveChart.SeriesCollection(2).XValues = "='1.のセルから右に2列進んだセル:1.のセルから右に2列下に8列進んだセル" ActiveChart.SeriesCollection(1).Values = "='1.のセルから右に6列進んだセル:1.のセルから右に6列下に8列進んだセル" というふうにしたいです。 ご指導お願いします。

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

    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

  • エクセルのグラフの操作

    エクセルのグラフの操作 初歩的でスミマセンが、よろしくお願いします。 エクセルのグラフのデータの内容を1セルずつ下に下げて、それを400回繰り返したいんです。 'wave-h'!R402C3と'wave-h'!R402C4を 'wave-h'!R403C3と'wave-h'!R403C4にして 'wave-h'!R867C3と'wave-h'!R867C4にまでしたいのですが。 do loopを考えてるんですが、引数?が上手くいかなくて・・・。 ついでにその後グラフをコピーしてペイントに貼り付けてJPGで保存する予定です。 これを400回以上繰り返すんですが、ペイントのコピーのところまではエクセルのVBAで可能でしょうか。よろしくお願いします。 ActiveSheet.ChartObjects("グラフ 4").Activate ActiveChart.SeriesCollection(2).Select ActiveChart.SeriesCollection(2).XValues = "='wave-h'!R402C3" ActiveChart.SeriesCollection(2).Values = "='wave-h'!R402C4" ActiveChart.ChartArea.Select ActiveChart.SeriesCollection(2).Select ActiveChart.ChartArea.Select ActiveChart.ChartArea.Copy

  • 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になることまでは確認できています。 各グラフを掴めているかは確認できておりません。 以上となります。 ご多忙とは思いますが、ご教授いただけると幸いです。 宜しくお願い致します。

  • ブック上にあるグラフの外枠を全て消したい

    シート状に複数のグラフ(散布図)が作られてます. これの輪郭線をすべて消去したいです. Excel操作でいうと「グラフエリアの書式設定」→「パターン」タブ→ 輪郭を「なし」となります. 一グラフに対して自動記録マクロをとると,次のようになります. これを,ブック上(シート上でなく)にある全てのグラフオブジェクト に対して施したいのですが,その方法がわかりません. Sub Macro1() ActiveSheet.ChartObjects("グラフ 1").Activate ActiveChart.ChartArea.Select With Selection.Border .Weight = 1 .LineStyle = 0 End With Selection.Interior.ColorIndex = xlAutomatic Sheets("Sheet1").DrawingObjects("グラフ 1").RoundedCorners = False Sheets("Sheet1").DrawingObjects("グラフ 1").Shadow = False End Sub よろしくお願い致します。

  • エクセルVBAで埋め込みグラフ(ChartObjects)のアクティブ

    エクセルVBAで埋め込みグラフ(ChartObjects)のアクティブ化のエラー(1004)解消方法について。 予めWorkbook1のシートに6つの埋め込みグラフを用意してあります。 Workbook2のシート1に数値データがあり、シート2に先のWorkbook1のシートを コピペして、数値の参照先をWorkbook2のシート1に変更して利用したいと考えております。 以下の処理を用いて、グラフ内の文字サイズが変わってしまうので、文字サイズを再設定しなおそうと、 埋め込みグラフを1つずつ選択し、文字サイズ設定を行おうとしているのですが、 chart 3を選択したところで、chartobjectクラスのactivateメソッドが失敗 (エラー 1004) が出てしまいます。 ちなみに、Workbook1のシート上で、以下の処理を行ってもエラーは出ません。 Workbook2にコピペしたものに対して、chart 1、chart 2の処理が済み、 chart 3になった所でエラーが発生します。 解決方法のご教授をよろしくお願い致します。 grp_cnt = ActiveSheet.ChartObjects.Count For j = 1 To grp_cnt Workbooks(2).Worksheets(2).Activate 'シート上のチャート中より、指定した名前のチャートを探す。 Set obj = ThisWorkbook.ActiveSheet.ChartObjects(j) crt_name = ThisWorkbook.ActiveSheet.ChartObjects(j).Name '変更したいチャートをアクティブにする。 ActiveSheet.ChartObjects(crt_name).Activate ActiveChart.ChartArea.Select Selection.AutoScaleFont = True With Selection.Font .Size = 10 End With Next j

専門家に質問してみよう