• 締切済み

Excel VBA で表の参照先を一気に変更させるには?

複数のsheetに規則正しくデータと表が配置されているとします。で以下のようなデータの縦棒の表があるとします。 *データ* A B 1 4 2 2 3 8 4 5 5 1 『グラフ』 - 『元のデータ』で参照先を見ると… =Sheet1!$A$1:$B$6 追加で 例>+5件のデータが加わったとします。 ※一部のsheetだけではなく、全てのsheetで追加です。 *データ追加* 6 3 7 3 8 1 9 8 10 7 グラフの参照先 =Sheet1!$A$1:$B$11 複数のsheetにまたがると、手作業で追加データを追加していて大変手間が食ってしまい困っています。Excel VBA で表の参照先を一気に変更させる方法ありますでしょうか? アドバイスよろしくお願い致します。  

みんなの回答

回答No.2

これはつまりグラフの参照先の変更ということですよね? データの追加の度に参照先を変更するのではなく、 初めから =Sheet1!$A$1:$B$30000 というようにデータの追加を充分に許容できる値にしておくというのはダメですか? 的外れだったらすいません。

  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.1

条件が不明確なので参考程度にして下さい。 試すならコピーブックなどのテスト環境で。 全シートの全グラフをスタート時にアクティブになっているシートの選択したセル範囲にします。 Sub aaa() Dim myAd As String, ws As Worksheet, myChart As ChartObject  myAd = Selection.Address  For Each ws In Worksheets   For Each myChart In ws.ChartObjects    myChart.Chart.SetSourceData       _Source:=ws.Range(myAd), PlotBy:=xlColumns   Next myChart  Next ws End Sub

u-mesh12
質問者

お礼

お礼遅れてすみません(^_^; >_Source:=ws.Range(myAd), PlotBy:=xlColumns  の行がエラー起こしていましたが…、『_』 をスペースに変更した事により上手く処理できるようになりました。アドバイスありがとうございました。

関連するQ&A

  • エクセルで複数のグラフの参照先を一度にずらしたい

    縦にずらっと並んだ1項目しかない棒グラフ(棒が1本だけ立っている) を複製しては参照先を一つづつずらすという作業をしていたのですがあまりに不毛すぎて苦労しています (そもそも棒グラフの範囲を横に増やせば簡単に棒を増やせるのですが 棒一本一本を動かして自由に配置したいとのことでこういうやり方になっています 完成は16*8*5シートの全てのセルに対して1つの棒グラフがついた形ということになります) 縦16*5シートは作ってあるのですがこれをそれぞれのシートで*8しなくてはなりません 覚えたてのVBAで楽にできないかと色々とこねくりまわしてみたのですが 「複数選択したグラフ一つ一つについて参照先を取得→変更する」というのをどう実現すればよいのかわかりません。 今後もシートは増えるということなので、省力化できればとても楽になります Excelのバージョンは2007ですが2003を使用することもできます 宜しくお願いします。

  • Excel VBA マクロ処理 リンク先参照変更方法

    Excel VBA マクロ処理 リンク先参照変更方法で質問です。 データがあるsheet名を『データ』、 平均を集計するsheet名を『平均集計』とします。 行いたい処理は 『データ』にある【 】内の5コのデータの平均値をまとめたい。 『平均集計』に平均値を集計してまとめる。 5コデータの平均値を既に参照指定済のsheetを使用します。 ***『データ』詳細********** 縦軸【1×5】×25項目 = 130行 横軸に13列 A~M列 ************************** ■教えて欲しい処理部分はここ! 『平均集計』リンク参照先を一気に変更させたい。 ActiveCell.FormulaR1C1 = "=AVERAGE('リンク参照'!R[★]C:R[★]C)" ↑上記のリンク参照先を一気に変更させる方法はありますでしょうか? 例> ActiveCell.FormulaR1C1 = "=AVERAGE('リンク参照先変更'!R[★]C:R[★]C)" のように…。 あと補足で、教えて欲しいのですが… ★データが追加された場合 例>5 → 7 この時行う処理方法がよくわかりません…。 単発だと ActiveCell.FormulaR1C1 = "=AVERAGE('リンク参照先変更'!R[1]C:R[7]C)" で可能ですが… ↓ 複数になると…  x=1 y=7 FOR i=1 to 25 ActiveCell.FormulaR1C1 = "=AVERAGE('リンク参照先変更'!R[x]C:R[y]C)" x=y+1 y=y*(i+1) NEXT …エラーになりました。 追加処理の場合、どのような方法がありますでしょうか? 以上、アドバイスよろしくお願い致しますm(__)m

  • VBAで各シートの表でグラフを作成したいのですが

    シートごとにレイアウトが同じ表がありまして、 VBAで各シートの表でグラフを作成したいのですが、 どうしても作成した時のシートのデータで出来てしまいます。 egシート1で表作成>シート2でVBA実行してもシート1でつくったグラフが複製されるだけ、、 どうすれば、選択中のシートのデータで表ができるのでしょうか?? 一度グラフをコピーした上でデータを変える方法も試したのですが、 Sub Macro7() ActiveSheet.ChartObjects("グラフ 1").Activate ActiveSheet.ChartObjects("グラフ 1").Activate ActiveChart.SeriesCollection(1).Name = "=Sheet2!$B$29" ActiveChart.SeriesCollection(1).Values = "=Sheet2!$B$31:$B$128" 結局シート2でしか出来ず、、です 「Sheet2!~」のところがいけないのはわかるのですが、、 この方法以外でもどんな方法でもよいのでどなたかお力かしてください。

  • excelの参照に関する質問です。

    excelの参照に関する質問です。 初心者です。 sheet1のセルデータをsheet2に参照したいのですが A1、A2、A3 B1,B2,B3 という一定範囲のセルをまとめて参照させるにはどしたらいいでしょうか。 参照させる範囲が広いので1つ1つ=で参照させるのは手間がかかるので まとめて参照させる方法をお教え願います。 参照元のデータも他のシートからの参照になっています。 どうぞよろしくお願いいたします。

  • VLOOKUPの複数参照先

    こんばんは。 エクセルのVLOOKUPでの質問があります。 よろしくお願いします。 1つのbookの中にA,B,C,D...とシートがあります。 Aのシートにて、VLOOKUPを使ってデータの参照をしたいのですが、 B,C,D・・の複数のシートを参照先にしたいのですが、 可能なのでしょうか。 検索先の文字列に応じて検索シート先を変えられれば・・と 思っています。 もう一つ、参照先に目的の値がなかった場合、#N/Aが表示されるのですが、これを1などの数字にすることはできないでしょうか。 お願い致します。

  • エクセル)VBAで他のブックのセル参照

    はじめまして。 エクセルのVBAについて教えてください。 VBAで、 book1のsheet1のセルA1にあるデータを開いていない(アクティブでない)別のbook2のsheet2のセルB1にコピーしたいのですがこんなことってできるのでしょうか? ・・やはり開いていないとダメなんでしょうか? あと、これって"ブック参照"っていうことなんでしょうか?自分がやりたいことが何なのか判らないので上手く調べる事が出来ず難儀しています。 よろしくお願いします。

  • excel vbaで助けてください

    excel2000を利用しています。 ファイルA (sheet1-グラフデータ、sheet2-グラフ)が、あります。 Vbaで、このファイルシートをすべて選択して、コピーして、名前をつけて保存しています。 この時に、作られる ファイルB (sheet1-グラフデータ、sheet2-グラフ)ですが、グラフの元データが、ファイルAになってしまいます。 下記、記述をどのように修正すれば、ファイルBのグラフの元データを、ファイルAでなく、ファイルBにすることが出来るでしょうか。 ご教授お願いいたします。 Thisworkbook.Worksheets.Copy SaveFilePath = Application.GetSaveAsFilename(mypath,"ExcelFile(*.xls),*.xls") If SavefilePath <> "False" Then ActiveWorkbook.SaveAs Filename:=SaveFilePath Else End if

  • Excelの絶対参照について

    Excelの絶対参照、相対参照について Excelの絶対参照について教えていただきたいです。 データの引用元(もしくは参照元)のシートで、一行増やしたり、一列減らしたりと編集を行ったときに、 引用先シートではズレることなく順応しているようにしたいです。 (例) 引用先(Aシート)    引用元(Bシート) A2='Bシート'!B2 B2 A3='Bシート'!B3 B3 A4='Bシート'!B4 B4 ↓ 引用先(Aシート)    引用元(Bシート) A2='Bシート'!B2 B2 A3='Bシート'!B4 B3←一行増やした A4='Bシート'!B5 B4   B5 このようにする場合は、$の絶対参照を引用先のAシートの各セルに付けておくのでしょうか。 それとも別に絶対参照を付ける必要はないのでしょうか。 質問内容が分かりにくくて申し訳ありません。 別ファイルや、別タブからデータを引用することが多いのですが、そのときに引用先では絶対参照を使った方がいい時と、使う必要はない時との違いが分からなくて……。 浅学でお恥ずかしい限りですが、ご教授願えればと思います。 よろしくお願いいたします。

  • シートごとに参照先セルを変更するには

    エクセルで請求書を作成している初心者です。 請求元データシートには請求先顧客名、商品名、数量、金額が一覧で入力してあります。 そのシートを元データとして、各請求先別シートが70シートあります(70件の請求書を作成)。 元データのA2~A71に顧客名、B2~B71に商品名、C2~C71に数量、D2~D71に金額が入力されており、A社請求シートには下データA2、B2、C2、D2を参照し、B社請求シートにはA3、B3、C3、D3と参照のセルを変えていきたいのですが、シートをコピーすると数式もコピーされてしまい、参照元を手入力で変更していて気が遠くなります。 検索してもよくわからなかったのですが、このシートにはこの行を参照、というように自動で変える数式か方法はありませんでしょうか? 初歩の質問でしたら申し訳ありません・・・。

  • VBAで表を作りたいのだけれど、、

    Excel2007VBAについての質問です。 結構膨大な量のデーターを検証しないといけないので、 お粗末ながらのマクロorVBAを作りたいのですが、 付け焼刃で参考書開いてもよくわからない感じになっています。 やりたいことを簡単に言うと、 Sheet1とSheet2を準備して、Sheet1のA1に値を入れるとB1に計算値が出るようなシートを作りました。 (1)Sheet1のA1B1をコピーして、Sheet2のA1B1にペーストしました。 (2)Sheet1のA1に別の値を入れB1の値も変化しました。 (3)A1B1をコピーして、Sheet2のA2B2にペーストしました。 というようにどんどんコピペで Sheet2に表を作りたいのですがうまくいきません。 どなたか、お力かしてください。。

専門家に質問してみよう