マクロを利用したグラフ編集
- エクセルで作成したグラフを画像として保存させる方法について教えてください。
- マクロを使ってグラフを別シートに貼り付けて保存する方法を教えてください。
- マクロでグラフの大きさを変更する方法について教えてください。
- ベストアンサー
マクロを利用したグラフ編集
マクロの初心者です。 エクセルで作成したグラフを画像として保存させたいのですが、うまくいきません。 マクロの記録開始→グラフのコピー→ 別シートにグラフを貼り付け→グラフを切り取る→ 形式を選択して貼り付け(図)→ 図の大きさを変更(図のプロパティから) →マクロの記録終了 こんな感じでマクロを組んだのですが、エラーが出て上手く実行できません。 私の感じでは図の大きさの変更が上手く記録できていないような気がします。 マクロ編集で書かれているような言語は全くわからないので、上記のような方法で上手く記録させることはできないでしょうか? できないのであれば、グラフの大きさを変更できるような言語の書き方を伝授ください。
- fit_type_r
- お礼率8% (3/37)
- オフィス系ソフト
- 回答数2
- ありがとう数1
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
"初心者" ということですので。。。 そのブックを開いた状態で [Alt]+[F11] で Visual Basic Editor を開く。 "標準モジュール" の中に記録したマクロが書いてあるので、[F8] をポンポン押しながら 1行ずつデバッグ。 エラーが出る箇所のコードと、エラーの内容を確認。 質問の際には どんなコードが記録されているのかを示す。 どこのコードでどんなエラーが出るのかを示す。 とすることでエラーに対する直接的で的確な回答を得られる確立が上がります。 またはもっと効率の良いやり方が提示される確立も上がります。 マクロのデバッグ方法については初心者用の書籍や Web で調べてみてください。 # とりあえず初心者用の書籍は手元に常備させておきましょう。
その他の回答 (1)
- temtecomai2
- ベストアンサー率61% (656/1071)
[切り取る] → [形式を選択して貼り付け] に関しては私も苦労させられました・・・ <やりたいこと> どこぞのシートにあるグラフをコピーして、 Sheet1 に図として貼り付けたいんですね? <前提> 「どこぞのシート」がすでに開かれていて、 そのシートにはグラフが 1つしかないとして・・・ Sub Test Dim objChart As ChartObject Set objChart = ActiveSheet.ChartObjects(1) objChart.Copy Sheets("Sheet1").Activate ActiveSheet.Range("A1").Activate ActiveSheet.PasteSpecial Format:="図 (拡張メタファイル)" End Sub ってのはどうでしょうか?
お礼
返信が送れてすいません。 上のコードでもエラーが出てしまいました。しかし、 もともとのコードのエラー原因はグラフ名が 毎回変化することでした。そこで、エクセル関数を 使って、グラフ名を参照するようにしたところ 上手くいきました。 ご迷惑をおかけいたしました。
関連するQ&A
- Excel マクロでグラフの切取り貼り付け
手動で行なった[マクロの記録]どうりに、マクロを実行してもうまくいきません。 マクロで、グラフの切り取り、貼り付け、形式を選択して貼り付け<図 (拡張メタファイル)>を実行すると、クリップボードに入らず、エラーとなる。 手動で行なうとOKなのですが、 [ツール]の[新しいマクロの記録]では、下記のとうり記録されていて、実行結果も正しいのですが、マクロで実行すると、クリップボードに入らず、エラーとなります。 ------------------------------- Range("E2:H4").Select Charts.Add ActiveChart.ChartType = xlColumnClustered ActiveChart.SetSourceData Source:=Sheets("Sheet1").Range("E2:H4") ActiveChart.Location Where:=xlLocationAsObject, Name:="Sheet1" ActiveWindow.Visible = False ActiveWindow.WindowState = xlNormal ActiveWindow.WindowState = xlMaximized Range("C12").Select ActiveSheet.PasteSpecial Format:="図 (拡張メタファイル)", Link:=False, _ DisplayAsIcon:=False Range("J7").Select ------------------------- Office XP 2002 マクロ、素人です。 どうしてでしょうか?
- ベストアンサー
- その他(プログラミング・開発)
- エクセルでマクロを利用してグラフを作りたい
エクセルでマクロを利用してグラフを作りたいです。 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のデータを参照してグラフが出来てしまいました。 各シートで動かしたら、そのシート内のデータを読み取り、グラフを作る方法を教えてください。 大変困っています。よろしくお願いします。
- ベストアンサー
- その他MS Office製品
- EXCELグラフをPowerPointに貼り付ける作業のマクロ化
EXCELで造ったグラフをコピーして、PowerPointで、形式を選択して貼り付けでピクチャ(拡張メタファイル)で貼り付ける作業のマクロ化を 行いたいと考えておりますが、PowerPoint側の操作をマクロ記録しても記録されません。何か良い方法はありますか? ※バージョンはOffice2000です。 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- エクセル2007の図に関するマクロの記録
エクセル2007で図やグラフにかかわるマクロが記録されません。マクロの記録開始を選んで、JPGファイルの取り込みや、グラフの加工をしても、全く記録されず、図にかかわらない部分のマクロコマンドだけが記録されます。従来のエクセルのようにすべてのコマンドを記録するようにするにはどうしたらよいのでしょうか。
- ベストアンサー
- オフィス系ソフト
- マクロがコードに記録されない
今晩は、宜しくお願いします。 エクセルのシートに写真を取り込んで、「ある大きさにサイズ変更 ⇒ 同じ大きさのセルに 移動させる」を「マクロの記録 ⇒ マクロの終了」でマクロを作成し、別のシートでも実行させ たいのです。 実は、あるエクセルファイルでは、うまく実行出来たのですが、今日、同じやり方で、別のエ クセルファイルでマクロを作成しましたが、マクロが全く実行されません。 「マクロ ⇒ 編集」からマクロコードを見ても、あるサイズに変更するところのマクロコードが 記録されていません。 これは何故でしょうか。 また、「相対参照で記録」というオプションがありますが、これが何らかの関係があるのでしょ うか。 どうしても理由がわかりません、以上、宜しくお願いいたします。
- ベストアンサー
- Excel(エクセル)
- excel マクロ記録→実行でグラフ作成に失敗
次の手順でグラフ作成を試みますが、失敗します。 1.データ範囲を選択した後「マクロの記録」ボタンを押す。 2.ツールバーからグラフウィザードを起動してグラフを作成。 3.サイズやフォントの編集を行って記録を終了。 4.マクロを実行 エラーとして、例えば次の行が指摘されます。 ActiveSheet.Shapes("グラフ 4").IncrementLeft -143.25 この行は"グラフ 4"を対象とした編集を行っていると思うのですが、マクロ実行で新たにグラフを作ると、グラフ名中の数字がインクリメントされて"グラフ n"(n>=5)以降が作られますよね? そのためにエラーが出ると思うのですが、"グラフ 4"では無く上手い具合にグラフ名を指定する方法はありますか? 他にも問題点があるかも知れませんが現状ではこれしか思いつきません。 思い当たる方、ご指摘いただけますでしょうか。 (単純にグラフを作る作業は「マクロ記録→実行」によって可能であることは確認しました。) また、excelでのグラフ作りに有用な書籍やサイトがあれば、教えていただけませんでしょうか。 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- EXCELマクロで順番にグラフをつくるには?
エクセルマクロ・VBA初心者です。 現在、グラフ作成で困ってます。 お詳しい方、よければアドバイスを下さい! 作成したいグラフは、元データが5000行×50列で、 1番左列に時刻、2列目からデータとなっており、 1-2列、1-3列、1-4列、・・・・1-50列 という感じの一般的な時系列グラフを多量につくりたいのです。 これをマクロを使って、別シートにグラフ(散布図)を並べて作るというものです。 さらに、別に用意したグラフの名称を並べたセルから、 順に、上記グラフのタイトルとして入力していきたいのです。 これをVBAを使って行いたいのですが、 一体どうすればいいのでしょうか? 「マクロの記録」では、 ■「50列目まで順番にグラフをつくれ!」 ■「名前を順番に入れていけ!」 という命令が私には作れません。 お詳しい方、ご返答宜しくお願い致します。
- 締切済み
- Visual Basic
- マクロでグラフのデータ範囲を換える
散布図のグラフの参照データをマクロによって変更したいのですが、エラーが出て困っています。どこが誤っているのかご指摘いただければ幸いです。 ワークシート2にあるグラフ1について、 その1つ目のグラフを変更したい。 xの値をワークシート1の (a,7)~(z,7)に yの値を同じく(a,10)~(z,10)にしたいと思っています。 このオブジェクトはこのプロパティかメソッドをサポートしないとのエラーが出ます。 Set range1 = worksheets(1).Range(Cells(a, 7), Cells(z, 7)) Set range2 = worksheets(1).Range(Cells(a, 10), Cells(z, 10)) With Worksheets(2).ChartObjects("グラフ 1") .SeriesCollection(1).XValues = range2 .SeriesCollection(1).Values = range1 End With
- 締切済み
- オフィス系ソフト
補足
回答ありがとうございます。 返信が遅れてしまい、申し訳ございません。 早速ですが、 ActiveChart.ChartArea.Select ActiveChart.ChartArea.Copy Sheets("Sheet1").Select ActiveSheet.Paste ActiveSheet.ChartObjects("グラフ 1").Activate ActiveWindow.Visible = False ActiveWindow.WindowState = xlNormal ActiveWindow.WindowState = xlMaximized ActiveSheet.PasteSpecial Format:="図 (拡張メタファイル)", Link:=False, _ DisplayAsIcon:=False Selection.ShapeRange.LockAspectRatio = msoFalse Selection.ShapeRange.Height = 255# Selection.ShapeRange.Width = 453.75 Selection.ShapeRange.Rotation = 0# Selection.ShapeRange.IncrementLeft 28.5 Selection.ShapeRange.IncrementTop 43.5 End Sub コードは上記のような感じでエラー部は ActiveSheet.ChartObjects("グラフ 1").Activate の部分です。 何か良いアドバイスお願いします。 ちなみにoffice2003です。