• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Unionでの他のシートの参照について)

Unionでの他のシートの参照について

このQ&Aのポイント
  • Excel2007のマクロを使用して、複数のシートからデータを参照し、グラフを作成したい場合、Unionメソッドを使用することがあります。
  • しかし、Unionメソッドを使用する際に'Union'メソッドは失敗しました'_Global'オブジェクトと表示されることがあります。
  • このエラーが発生する場合、Unionメソッドの使い方に問題がある可能性があります。正しい使い方を確認し、オブジェクトのセットアップを正確に行う必要があります。

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

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

複数のシートの範囲をUinonで接続するのは無理です ワーク用のシートにその2つの領域をコピーして コピーした領域をCurrentRegionなどで取得しましょう owarine.Copy Worksheets("Work").Range("A1") BB.Copy WorkSheets("Work").Range("B1") set sphere = Worksheets("Work").Range("A1").CurrentRegion といった具合です

meragottu
質問者

お礼

なるほど、出来ないんですね汗 解決しました、ありがとうございました!

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

関連するQ&A

  • VBAでグラフ作成

    過去のログから色々探したのですが、原因が分かりません。お願いいたします。 エクセルのグラフの元データの範囲を ActiveChart.SetSourceData Source:=Sheets(\"sheet1\").Range(\"J11:M35\"), PlotBy:=xlColumns から ActiveChart.SetSourceData Source:=Sheets(\"sheet1\").Range(Cells(11, 10), Cells(35, 13)), PlotBy:=xlColumns に書き換えたら動かなくなってしまいました。 ナゼでしょうか? すいません、初歩で、、。お願いいたします。

  • Excel VBA グラフ作成のときのエラー

    VBA初心者です。Excel2003を使っています。 Sheet1に作りたいグラフがあります。 データは下記のとおりです。 ActiveChart.SeriesCollection(1).Name = Cells(a_data, "A")のところで、「実行時エラー13 型が一致しません」とエラーがでます。 不思議なのは、昨日は動いていたのです。 なぜ、エラーが出るようになったのかわかりません。 ご教授よろしくお願いします。 A B 1 a 1 2 2 3 3 4 4 5 5 6 b 6 7 7 8 8 9 9 10 10 11 c 11 12 12 13 13 14 14 15 15 Sub test() Wrow = Worksheets("sheet1").Cells(Rows.Count, "A").End(xlUp).Row For i = 1 To Wrow If Worksheets("sheet1").Cells(i, "A").Value = "a" Then a_data = Worksheets("sheet1").Cells(i, "A").Row ElseIf Worksheets("sheet1").Cells(i, "A").Value = "b" Then b_data = Worksheets("sheet1").Cells(i, "A").Row ElseIf Worksheets("sheet1").Cells(i, "A").Value = "c" Then c_data = Worksheets("sheet1").Cells(i, "A").Row ElseIf Worksheets("sheet1").Cells(i, "A").Value = "d" Then d_data = Worksheets("sheet1").Cells(i, "A").Row End If Next Sheets("sheet1").Select Range(Cells(a_data, "B"), Cells(b_data, "B")).Select ActiveSheet.ChartObjects.Add(30, 10, 500, 200).Select ActiveChart.ChartType = xlLineMarkers ActiveChart.SetSourceData Source:=Sheets("sheet1").Range(Cells(a_data, "B"), Cells(b_data - 1, "B")), PlotBy:=xlColumns ActiveChart.Location where:=xlLocationAsObject, Name:="sheet1" Sheets("sheet1").Select ActiveChart.Axes(xlCategory, xlPrimary).CategoryType = xlAutomatic ActiveChart.SeriesCollection.NewSeries ActiveChart.SeriesCollection.NewSeries ActiveChart.SeriesCollection.NewSeries ActiveChart.SeriesCollection(1).Name = Cells(a_data, "A") ←エラーがでます。 ActiveChart.SeriesCollection(2).Values = Range(Cells(b_data, "B"), Cells(c_data, "B")) ActiveChart.SeriesCollection(2).Name = Cells(b_data, "A") ActiveChart.SeriesCollection(3).Values = Range(Cells(c_data, "B"), Cells(d_data, "B")) ActiveChart.SeriesCollection(2).Name = Cells(c_data, "A") End Sub

  • エクセルのマクロでCells(j,i)を使用してデータ範囲を指定してグラフを作成する方法

    エクセルのマクロでグラフを描く時に、2つの離れた列(1列目とi列目)のデータを Cells を使用して範囲指定をしたいのですが、エラーがでてしまします。どこが間違っているか教えていただけないでしょうか? よろしくお願いいたします。 下記の式では正常にグラフは作成されます。 ActiveChart.SetSourceData Source:=Sheets("Sheet1").Range("A1:A19,C1:C19"), PlotBy _ ' :=xlColumns 下記表現でエラーが発生します。 Dim c1, c2, c3 As Range Set c1 = Worksheets("Sheet1").Range(Cells(1, 1), Cells(jmax, 1)) Set c2 = Worksheets("Sheet1").Range(Cells(1, i), Cells(jmax, i)) Set c3 = Union(c1, c2) ActiveChart.SetSourceData Source:=Sheets("Sheet1").c3, PlotBy _ :=xlColumns エラー内容 実行時エラー'438' オブジェクトは、このプロパティまたはメソッドをサポートしていません。

  • エラーになりますが、原因が分かりません。

    以下のようなコーディングをしてグラフを10枚書き直そうと思っています。 1枚目は書けるのですが、2枚目でエラーとなりますが原因が分かりません。 何処が悪いのかご指摘ください。 Sheet1に元データ、Graph1~10が(既に書いたグラフが)存在します。 毎日Sheet1のデータが1行ずつ増えていきます。 以下のコーディングで、元データの範囲を修正し、 書き直そうとしています。 Sheet1には、A列に日付、B列に時刻(使っていません)、 C列からL列までが書き直したいグラフの元データです。 一応構想を説明すると、 日付は固定なので、range1に前もってセットしておき、 実際のデータ(C列~L列)をrange2で与え、ループさせようとしています。 エラー状況ですが、 range2 = Range(Cells(1, n + 2), Cells(lastln, n + 2)).Addressのところで、 【実行時エラー '1004'  'cells'メソッドは失敗しました:'_global'オブジェクト】 というエラーになります。 ただ、 Sheets("Graph" & n).Select ActiveChart.SetSourceData Source:=target, PlotBy _ :=xlColumns の部分をコメントにすると、エラーにならず10回ループします。 Dim target As Range Dim range1, range2, lastln, grph As Variant Sheets("Sheet1").Select lastln = Range("A1").End(xlDown).Row range1 = "A1:A" & lastln For n = 1 To 10 range2 = Range(Cells(1, n + 2), Cells(lastln, n + 2)).Address Set target = Union(Range(range1), Range(range2)) Sheets("Graph" & n).Select ActiveChart.SetSourceData Source:=target, PlotBy _ :=xlColumns Next n WindowsXP & excel2003です。 お願いですが、もっと上手い書き方があると思いますが、 それはそれで別途ご指摘いただきたいのですが、 これの原因についてを教えて欲しいのです。 宜しくお願いします。

  • 別のシートを参照して計算する方法

    質問です。 シート1に数値が入力してあり、そこで計算した結果をシート2に貼り付けるにはどのようにすればいいのでしょうか? Worksheets("シート2").Cells(3 + g, 3 * c) = _ Worksheets("シート1").Select.WorksheetFunction._ Average(Range(Cells(e, g + 2), Cells(f, g + 2))) と書いたのですが、上手くいきません。 おそらく Worksheets("シート1").Select.WorksheetFunction._ Average(Range(Cells(e, g + 2), Cells(f, g + 2))) の部分がおかしいと思うのですが、どうすればよいでしょうか? よろしくお願いします。

  • VBAでグラフ作成

    過去のログから色々探したのですが、原因が分かりません。お願いいたします。 エクセルのグラフの元データの範囲を ActiveChart.SetSourceData Source:=Sheets("sheet1").Range("J11:M35"), PlotBy:=xlColumns から ActiveChart.SetSourceData Source:=Sheets("sheet1").Range(Cells(11, 10), Cells(35, 13)), PlotBy:=xlColumns に書き換えたら動かなくなってしまいました。 ナゼでしょうか? すいません、初歩で、、。お願いいたします。

  • グラフ作成

    グラフ作成のマクロを作りたくて、マクロの記憶を用いて試してみたのですが、うまくいかないので、もしよろしければおしえてください。 選択範囲をアルファベットを用いたものではなく、cells(k,i)で表したいと思っています。 <マクロ> Charts.Add ActiveChart.ChartType = xlLineMarkers ActiveChart.SetSourceData Source:=Sheets("元データ").Range( _ "A1:B1,A927:B987,Y1:Z1,Y927:Z987"), PlotBy:=xlColumns ’←このグラフ範囲をcells(,)の形式にしたい。 ActiveChart.Location Where:=xlLocationAsObject, Name:="Sheet3" どうぞよろしくお願いします。

  • エクセル2000のマクロにおける、複数シート間のコピー&ペーストについて

    閲覧ありがとうございます。 現在、エクセル2000(OS、WIN2KPRO)を用いて、以下のような仕様のマクロを組もうとしています。 1.Sheet1のCommandButton1から実行する。 2.Sheet2のA1セルから、O?セルまでのデータの入っているセルをコピーし、Sheet1のB4セル以下にペーストする。 3.O?セルの?は1000以下の値で変化する。 4.Sheet2のF列には、ユニークキーが入力される為、必ず値が入力されている。 上記の仕様に従い、以下のようなマクロを組みましたが、 > Worksheets("Sheet2").Range(Cells(1, 1), Cells(Line_Num, 15)).Select のラインでエラーが発生します。 激しく独学の為、汚いソースですみません^^; **************************************** Private Sub CommandButton1_Click() Worksheets("Sheet2").Select Worksheets("Sheet2").Activate Dim Line_Num Line_Num = 1000 - WorksheetFunction.CountBlank(Range("F1:F1000")) Worksheets("Sheet2").Range("A1").Select Worksheets("Sheet2").Range(Cells(1, 1), Cells(Line_Num, 15)).Select Worksheets("Sheet2").Range(Cells(1, 1), Cells(Line_Num, 15)).Copy Worksheets("Sheet1").Select Worksheets("Sheet1").Activate Range("B4").Select ActiveSheet.Paste End Sub

  • VBA:2つの異なるシートからグラフを作成する

    VBA初心者です。(はじめてから3日目。。。) もしかすると、すごい簡単なことなのかもしれなくて申し訳ないのですが、質問させてください。 二つの異なるシートのデータを使って、円グラフを作製しようとしています。 ですが、「アプリケーション定義またはオブジェクト定義のエラー」が出てしまいます。 どこが間違っているのかをご教授願えませんでしょうか。 よろしくお願いします。 Sub graph() Charts.Add With ActiveChart .ChartType = xlPie .SeriesCollection(1).XValues = Worksheets(1).Range(Cells(2, 3), Cells(2, 5)) .SeriesCollection(1).Values = Worksheets(2).Range(Cells(3, 2), Cells(3, 4)) .SeriesCollection(1).Name = Worksheets(1).Cells(1, 1) .Location where:=xlLocationAsObject, Name:="sheet3" End With End Sub ちなみに、各セルにはちゃんとデータが入っております。 よろしくお願いいたします。

  • VBAでCharts.Addで追加したShapesの名前をあらかじめ決めたい

    下記はグラフ作成を記録したマクロです。 このままでは"グラフ 2"という名前が自動的にきめられるのですが これをあらかじめ"graf1"などの任意の名前にしたいのですが、どうしたらいいでしょうか。 ActiveWindow.SmallScroll ToRight:=13 Range("T1:V11").Select Charts.Add ActiveChart.ChartType = xlLineMarkers ActiveChart.SetSourceData Source:=Sheets("Sheet1").Range("T1:V11"), PlotBy _ :=xlColumns ActiveChart.Location Where:=xlLocationAsObject, Name:="Sheet1" ActiveChart.Axes(xlValue).Select ActiveChart.ChartArea.Select ActiveSheet.Shapes("グラフ 2").IncrementLeft -882# ActiveSheet.Shapes("グラフ 2").IncrementTop -140.25 ActiveWindow.Visible = False Windows("Book1").Activate Range("L11").Select