Page 307 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 通常モードに戻る ┃ INDEX ┃ ≪前へ │ 次へ≫ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ▼Globalオブジェクトって? Gou 02/11/7(木) 15:52 ┗Re:Globalオブジェクトって? こうちゃん 02/11/8(金) 8:57 ─────────────────────────────────────── ■題名 : Globalオブジェクトって? ■名前 : Gou ■日付 : 02/11/7(木) 15:52 -------------------------------------------------------------------------
御世話になります。 以下のプログラムで系列の9つある、 散布図を約100個以上作ろうとしております。 test1のところでエラー”Cells'のメソッドは失敗しました'_globalオブジェクト'がでます。 なぜでしょうか? あと、この変数(ex,cells(4,x))を利用して、系列の名前を出そうとしても無理でした。 すいませんが、アドバイスお願いします。 Option Explicit Dim x, y As Integer Dim Mychart, r1, rx2 As Variant Dim test1, test2 As String Sub MakeGraph() Range("A1").Activate For x = 5 To 35 For y = 6 To 35 '''グラフ作成 Set r1 = Range(Cells(4, x), Cells(10, x)) Set r1 = Application.Union(r1, Range(Cells(4, y), Cells(10, y))) Set Mychart = ActiveSheet.ChartObjects.Add(450, 5, 270, 240) Mychart.Chart.ChartType = xlXYScatter Mychart.Chart.SetSourceData Source:=r1, PlotBy:=xlColumns Mychart.Activate test1 = Cells(3, x).Value test2 = Cells(3, y).Value |
Gouさん、おはようございます。 レスがつかないようなので・・ >Sub MakeGraph() > >Range("A1").Activate > >For x = 5 To 35 > For y = 6 To 35 > >'''グラフ作成 > Set r1 = Range(Cells(4, x), Cells(10, x)) > Set r1 = Application.Union(r1, Range(Cells(4, y), Cells(10, y))) > Set Mychart = ActiveSheet.ChartObjects.Add(450, 5, 270, 240) > > Mychart.Chart.ChartType = xlXYScatter > Mychart.Chart.SetSourceData Source:=r1, PlotBy:=xlColumns > Mychart.Activate > >test1のところでエラー”Cells'のメソッドは失敗しました'_globalオブジェクト'がでます。 Mychartをアクティブにしたままセルを参照しているので、エラーになっています。 たとえば、以下のようにシートをアクティブにしたあとセルを参照してください。 Sheets(1).Cells(3, x).Activate > test1 = Cells(3, x).Value > test2 = Cells(3, y).Value >あと、この変数(ex,cells(4,x))を利用して、系列の名前を出そうとしても無理でした。 こちらは質問の意味が汲み取れません。上記と同じくエラーになるということですか? それともグラフのタイトルを設定したいのかな? 系列名に設定?はちょっとわかりませんが・・ もう少し詳細に質問してください。 #質問とは関係ありませんが変数の宣言が気になります。 >Dim x, y As Integer >Dim Mychart, r1, rx2 As Variant >Dim test1, test2 As String この宣言では X, test1 はVariantになります。 xをIntegerで、test1をStringで宣言したいなら Dim x As Integer, y As Integer Dim test1 As String, test2 As String |