• 締切済み

マクロでグラフ作成

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

みんなの回答

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんばんは。 埋め込み型グラフですね。 たとえば、記録マクロを取ると以下のようになります。 Sub Macro1()   Range("A1:B11").Select '*   Charts.Add   ActiveChart.ChartType = xlLine   ActiveChart.SetSourceData Source:=Sheets("Sheet1").Range("A1:B11"), PlotBy _     :=xlColumns   ActiveChart.Location Where:=xlLocationAsObject, Name:="Sheet1" '*   With ActiveChart     .HasTitle = False     .Axes(xlCategory, xlPrimary).HasTitle = False     .Axes(xlValue, xlPrimary).HasTitle = False   End With End Sub ------------------------------------------------------------- 記録マクロを以下のように加工すると、どこでも使えるようになります。 ------------------------------------------------------------- Sub MyMacro() Dim r As Range Dim ShName As String   Set r = Selection 'マウスで選択   If r Is Nothing Then Exit Sub '**   ShName = ActiveSheet.Name '**   Charts.Add   ActiveChart.ChartType = xlLine   ActiveChart.SetSourceData Source:=r, PlotBy _     :=xlColumns   ActiveChart.Location Where:=xlLocationAsObject, Name:=ShName   With ActiveChart     .HasTitle = False     .Axes(xlCategory, xlPrimary).HasTitle = False     .Axes(xlValue, xlPrimary).HasTitle = False   End With End Sub *の部分のポイントが分かったら試してみてください。 ただし、グラフマクロだけは、バージョンによって記録マクロの内容が大きく変わることがあります。なお、本来のマクロはこのような書き方はあまりしません。あくまでも、記録マクロを手直ししたという前提です。

全文を見る
すると、全ての回答が全文表示されます。
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.1

グラフを書くエクセルVBAは、マクロの記録で、骨子はわかります。 しかし多数のグラフを書くということは、上記マクロの記録のコードで、データ範囲はVBAで変化させなければなりません。こんなことは、言わずもがなのレベルなのかどうか判らないのが、質問コーナーの悲しさです。 この辺をどのようにコードしているか、この質問の補足欄で、グラフの1,2例のコードを書いてみたらどうでしょう。 ーー 「VBA、VBのコードの質問は、コードを書いて質問」

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

関連する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のデータを参照してグラフが出来てしまいました。 各シートで動かしたら、そのシート内のデータを読み取り、グラフを作る方法を教えてください。 大変困っています。よろしくお願いします。

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

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

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

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

  • マクロでグラフを作成したい。

    エクセルのマクロについて教えて下さい。 グラフ作成をマクロ登録したのですが、元となるデータの参照範囲が違っても(例えばX軸の個数が違う)うまくグラフ化するようにしたいです。 教えて下さい。

  • Excelマクロ:折れ線グラフの行範囲を可変

    Excel2010を使用しています。 マクロを記録して折れ線グラフを作ろうとしていますが、マクロを記録出来ないところがあるらしくマクロを実行できません。 マクロを使用するのが初めてで、VBAは勉強中の為、自力での組み立てが出来そうにありません。 どうかお力を貸して頂けないでしょうか。 sheetによって行の数に違いが有る為、行のみを可変範囲設定出来ればと思っています。 1行目に系列が表示しており、2行目からはすべて数字となっています。 A列を横軸の目盛りで表示し、C・D・E列を折れ線グラフで表示し、B・F列はグラフには使用しません。 よろしくお願いします。

  • エクセル マクロ 既存グラフの削除

    また 質問させていただきます。 左側に表全体を範囲指定した折れ線グラフを、マクロを実行して貼り付けており 右側に表の一部を範囲指定した折れ線グラフを、マクロを実行して貼り付けます。 右の表の範囲を変更して、右の表だけを変更するマクロ作成したいと思っています。 左側のグラフの名前を変更して Activesheet.ChartObjects(1).Name="全体グラフ" 右側のグラフの名前を変更して Activesheet.ChartObjects(1).Name="グラフ1" 右側の折れ線グラフ(グラフ1)を削除して、範囲を変更した新たなグラフ(グラフ1に名前を変更)を貼り付けるマクロを作りましたが、右側のグラフが貼りついていない、最初のときに実行すると、削除するグラフが無いためにエラーがでてしまいます。 If を使用するのかなっと思っていますが、どのように入力すればいいのか分かりません。 教えて頂けないでしょうか。

  • グラフ作成について

    以下のような条件でグラフ作成のフリーソフトを探しているのですが見つかりません。何か良いツールをご存知の方、教えて頂けませんか? 最初はExcelでやってみようと思ったのですが、方法が分からずフリーソフトを探した方が早いと思いました。もしExcelでも出来るなら、その方法を教えてほしいです(が、マクロは分かりません・・・)。 ○2つのデータを折れ線グラフにて表示。 ○その際、2つのデータのY軸の値が違うので、グラフのBoxの左右に、それぞれ違った数値範囲を表示させたい。 ○データにはY軸に対するデータがない場合があるが、無視して前後のデータに繋げて折れ線グラフを表示させたい。 以上のような条件を満たすツールはありますでしょうか? よろしくお願いします。

  • シートの保護、グラフ作成

    お世話になります。 Excelでアンケートの集計をしています。 別のシートに集計データを参照しました。そこにマクロの記録で、グラフを作成するマクロを作成しました。また、このマクロを登録したボタンを配置しています。 このシートに、「シートの保護」を設定しました。 その後、マクロボタンをクリックすると別添のメッセージが表示され、グラフは作成できません。 確かに、「挿入」タブのリボンは、グレーアウトしています。 「シートの保護」を設定した後も、ボタンからグラフを作成する方法はないでしょうか。 よろしくお願いします。 エラーメッセージ 「実行時エラー”1004”」 「指定された値は境界を超えています。」 OS: Windows 7 professional SP-1 32Bit Office: 2010 Professional 32Bit

  • 非アクティブシートでのグラフ作成方法について

    VBAを使ってアクティブなっていないシートのセルを参照したグラフを 作成したいと思っているのですが、可能でしょうか? また、軸の最少最大値などのグラフの設定を同様に変更することは可能でしょうか? 例 シート1がアクティブになっているときに、 シート2のA1~B5のデータでグラフを作成する。 この時、シート2をアクティブにせずにグラフを作成したい。 さらにシート2をアクティブにせずにグラフの書式等を設定したい。 アクティブになっているシートでグラフを作成するのは マクロで記録した物をいじくれば問題なく作れると思いますが、 グラフを複数のシートで作成する必要があり、 画面が一々切り替わるのはちょっと・・・と思い、 できればボタンを押して別のシートに移らずにグラフを作成したいのです。

専門家に質問してみよう