• ベストアンサー

マクロが止まってしまいます. (マクロ初心者です)

ある2列のデータを選択して(例えばA1からB10まで) グラフウィザードを選択して散布図のグラフを作成する. 上記のようなマクロを作成したのですが, 作ったエクセルのファイル上ではちゃんと動いてくれるのですが 別のファイルで使うと 「実行エラー9 インデックスが有効範囲にありません」 と警告がでて途中で止まってしまいます. マクロ初心者でプログラムもわからないです. 保存先がよくないのでしょうか? それとも,もともとこのような作業(マクロを別のファイルで使用) はできないものなのでしょうか? よろしくお願いします. windows98 Excel2000

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.4

質問の意図が良く掴めませんが、下記と比べて違いを教えてください。私のがやると上手く行きましたが、やっていることが違うのかも知れませんがそれが何かを明かにすると、回答が入ると思います。 推定では「シート名が変っているのに、変えてないからではないですか」 下記コードでは「Sheets("Sheet1").Range("A1:B10"), 」のところです。 (1)Sheet1にA1:B10に数字データを入力する。 (2)ツール-マクロ-新しいマクロの記録をクリック。 (3)挿入-グラフ-以下略-完了(グラフウイザード) (4)ツール-マクロ-マクロの記録終了 (5)ツール-マクロ-マクロ-編集  (6)VBEのマクロの記録をコピー Sub Macro1() Range("A1:B10").Select Charts.Add ActiveChart.ChartType = xlColumnClustered ActiveChart.SetSourceData Source:=Sheets("Sheet1").Range("A1:B10"), 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 (7)ブックを閉じる。 (8)改めて新規ブックを開く。 (9)Sheet1のA1:B10に数字データを入れる。    前と同じく「シート名はSheet1のまま」です。 (10)ツール-マクロ-VBEをクリック。 (11)挿入-標準モジュールをクリック。 (12)標準モジュール画面に貼り付ける。上記コードと    当然同じです。 (13)実行する。 (14)Sheet1にグラフが描けた。(テスト済み)

hithit
質問者

お礼

imogasiさんの推測どおりです. シート名がどうもエラーの原因だったようです. 回答ありがとうございました.

その他の回答 (3)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.3

質問の意図が良く掴めませんが、下記と比べて違いを教えてください。私のがやると上手く行きましたが、やっていることが違うのかも知れませんがそれが何かを明かにすると、回答が入ると思います。 推定では「シート名が変っているのに、変えてないからではないですか」 下記コードでは「Sheets("Sheet1").Range("A1:B10"), 」のところです。 (1)Sheet1にA1:B10に数字データを入力する。 (2)ツール-マクロ-新しいマクロの記録をクリック。 (3)挿入-グラフ-以下略-完了(グラフウイザード) (4)ツール-マクロ-マクロの記録終了 (5)ツール-マクロ-マクロ-編集  (6)VBEのマクロの記録をコピー Sub Macro1() Range("A1:B10").Select Charts.Add ActiveChart.ChartType = xlColumnClustered ActiveChart.SetSourceData Source:=Sheets("Sheet1").Range("A1:B10"), 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 (7)ブックを閉じる。 (8)改めて新規ブックを開く。 (9)Sheet1のA1:B10に数字データを入れる。    前と同じく「シート名はSheet1のまま」です。 (10)ツール-マクロ-VBEをクリック。 (11)挿入-標準モジュールをクリック。 (12)標準モジュール画面に貼り付ける。上記コードと    当然同じです。 (13)実行する。 (14)Sheet1にグラフが描けた。(テスト済み)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

質問の意図が良く掴めませんが、下記と比べて違いを教えてください。私のがやると上手く行きましたが、やっていることが違うのかも知れませんがそれが何かを明かにすると、回答が入ると思います。 推定では「シート名が変っているのに、変えてないからではないですか」 下記コードでは「Sheets("Sheet1").Range("A1:B10"), 」のところです。 (1)Sheet1にA1:B10に数字データを入力する。 (2)ツール-マクロ-新しいマクロの記録をクリック。 (3)挿入-グラフ-以下略-完了(グラフウイザード) (4)ツール-マクロ-マクロの記録終了 (5)ツール-マクロ-マクロ-編集  (6)VBEのマクロの記録をコピー Sub Macro1() Range("A1:B10").Select Charts.Add ActiveChart.ChartType = xlColumnClustered ActiveChart.SetSourceData Source:=Sheets("Sheet1").Range("A1:B10"), 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 (7)ブックを閉じる。 (8)改めて新規ブックを開く。 (9)Sheet1のA1:B10に数字データを入れる。    前と同じく「シート名はSheet1のまま」です。 (10)ツール-マクロ-VBEをクリック。 (11)挿入-標準モジュールをクリック。 (12)標準モジュール画面に貼り付ける。上記コードと    当然同じです。 (13)実行する。 (14)Sheet1にグラフが描けた。(テスト済み)

  • vbafriend
  • ベストアンサー率47% (17/36)
回答No.1

初めまして。マクロのエラーは、自分でデバック(修正してきちんと動作するようにすること)をする以外には方法がありません。冷たいようですが、マクロの誤作動は、貴方様のブックの内容を拝見しなければどこでエラーが起こるのかが見当がつきません。 もし、どうしてもデバックを手伝ってほしい時は、貴方様の記述になったマクロすべてを教えて下さい。また、マクロのどの行でエラー(実行エラー9 インデックスが有効範囲にありません)と出るのかも教えて下さい。 お手数をおかけいたしますが、よろしくお願いいたします。

hithit
質問者

お礼

すいません! 説明が足らなかったようですね~. 質問内容の方は当方で解決できました. ご回答ありがとうございました.

関連するQ&A

  • Excelマクロ:配列データからグラフを作成するには?

    マクロ初心者です。 Excel VBAのマクロで、2つの配列データから、散布図グラフを作成したいのですが、セルに配列データを書き込まず、直接グラフ化するにはどうしたらよいでしょうか? 配列データの要素数がexcelの行と列の最大数(65536,256)?を超えてしまっているので、配列データから直接グラフ化したいと思っています。 よろしくお願いいたします。

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

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

  • EXCEL2003の散布図グラフで質問です

    EXCEL2003を使用しています。 散布図グラフで約200個の要素があるグラフを作成しているのですが、そのうち約100個を第2軸(Y軸)に一括で変更することはできるのでしょうか? あるいは、グラフを作成するとき(ウィザード時に)、データを範囲選択して、ここからここまでは第1軸、ここからここまでは第2軸と設定できるのでしょうか? 現在は、約200個の要素があるグラフを作成した後、100個を1つずつ第2軸に変更しているため、非常に手間です。 どなたか教えてください。 よろしくお願いします。

  • グラフ作成で1行にX/Y軸のデータがある場合

    Excel2003を仕様しています。 グラフの種類:散布図 1列目:名前 2-4列目:X軸の値 5-7列目:Y軸の値 というデータの場合、 範囲指定をしてからグラフウィザードでグラフを作成するという手順では、 一発でグラフを作成する事は無理でしょうか? 今は手作業で系列を追加して、X/Y軸を指定している状態です。 何か方法がございましたら、よろしくお願いします。

  • マクロを使い選択範囲を次々と変えて並べ替えたい

    マクロ作成は 範囲選択 A4~G12 マクロ記録開始 並べ替え E列 降順 マクロ記録終了 でマクロを作成し 次に範囲選択 A14~G22でこのマクロを実行すると範囲選択が前と同じA4~G12が並べ替えられてしまいます。 マクロの中を見ると範囲選択 A4~G12が書かれてしまっています。 次のように、選択範囲を次々と変えて並べ替えるマクロを作りたいのですがお教え願います。 1. 範囲選択 A4~G12を選択 マクロ実行で選択範囲をE列の値で降順並べ替える 2. 範囲選択 A14~G22を選択 マクロ実行で選択範囲をE列の値で降順並べ替える 3. 範囲選択 A28~G32を選択 マクロ実行で選択範囲をE列の値で降順並べ替える

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

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

  • エクセルのマクロの有効の仕方

    EXCEL2003で作成したマクロを含むファイルをEXCEL2007で開くと『マクロを有効できません』という警告が出てきます。 無視してそのままファイルを開き、マクロの設定してあるボタンをクリックすると、やはり『マクロを有効にしてください』の警告が再び表示されます どうすればマクロを有効にすることが出来るのでしょうか?詳しい方がみえたら教えて下さい。 ちなみに、マクロの設定のボタンの内容は、指定した範囲の印刷をするように設定してあります。 OSはVistaです。 自分自身がマクロを設定してEXCELのファイルを作成したことがないので、知り合いに作成してもらったファイルなのですが、バージョンがEXCEL2003を使用しているみたいです。 マクロ作成の詳しいサイト等知っていたら教えてください。

  • マクロです。

    マクロです。 エクセルのマクロ A列289行がX軸 B列~IV列289行がY軸 これを (A列、B列)・(A列、C列)・(A列、D列)・(A列、…IV列) というように、1枚のグラフシートに255本の線のグラフを書くプログラムではなく、 一本一本の線を1枚のグラフシートの書いてくれる プログラムを教えてください。 手でしていたら気がとおくなる作業なのでマクロで一気につくってくれるプログラムをもとめています。 お願いします。 補足 途中過程が手元にないのですが 結果はこのようにしたです。 とりあえず、(A列、B列)で普通に作ったやつです。 これを、255枚つくりたいです。 なお画像では、グラフシートではありません。 あとグラフタイプは散布図の平滑線でつないだマーカーなしです。

  • EXCELのマクロで出来ますか?

    散布図で近似曲線グラフを作成しました。 この近似曲線の書式設定で[グラフに数式を表示する(E)]を選択すると、 グラフに y = ax2 + bx + c という数式が出ます。 この数式をマクロで計算することは出来ないのでしょうか? 例えば、[セルA1]にxを入力したら[グラフA]のyの値が[セルB1]に算出されるような 便利なマクロ組むことは出来ますか? 初心者で質問が下手ですみませんm(_ _)m

  • Excelのマクロで、円グラフの色を指定したい

    毎月使用するためのグラフのフォーマットを作成しています。 マクロ作成を何度も試みましたが、不慣れでなかなかうまくいきません。 どなたかご教授いただけると助かります。 Sheet1に以下のような表があります。   A   B 1 A社  10 2 B社  34 3 C社  15 4 D社  20 5 E社  5 6 F社  13 7 G社  32 A列は項目名、B列には数値が入っています。 これを元にした円グラフを、Sheet2に作成してあります。 円グラフなので、当月の数値を入力後、降順に並べ替えます。 ただ、並べ替えるとそれぞれの企業のグラフ色が毎月変わってしまうため、 項目毎にグラフの色を固定したいと思っています。 円グラフの色を固定(指定?)するマクロを作成したいのです。 http://excel-ubara.com/excelvba/EXCELVBA218.html http://hamachan.info/win7/Excel/engraph_color.html 上記ふたつのページにたどり着き、参考にしました。 特にひとつめのリンクで、表につけた色とグラフの色を同じにできるなら 簡単だと思い、すでに表の項目は、グラフにつけたい色で塗りつぶしています。 上記リンクのマクロを実行してみたところ、 グラフの色が全て真っ白になってしまいました。 表とグラフが別シートにあるので、そのままのマクロではダメなのでしょうか。 円グラフを選択してマクロを実行したら、表の項目名の色とグラフの色を 同じにするマクロを作成したいです。 不足している情報があればご指摘ください。 どうぞよろしくお願いいたします。

専門家に質問してみよう