• ベストアンサー

rangeの意味

xをワークシートオブジェクトとすると、 With x.range("A1")のrange("A1")とは 何を意味しているんでしょうか?セルA1を 参照していますよということでしょうか?

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

  • ベストアンサー
  • violet430
  • ベストアンサー率36% (27472/75001)
回答No.1

rangeは範囲という意味です。 ご質問に書かれている解釈で良いと思います。

関連するQ&A

  • Rangeオブジェクトを一時的に作成することは出来ますか。

    こんにちは。 いままでは特定のシートにタイトルや数値、書式を入れて、そのRangeオブジェクトを参照してVBA作成を行っていました。 そこで今度はRangeオブジェクトを新たに作成して、特定セルのセルオブジェクトを、一時的にそこに格納して利用したら便利かと思いまして、色々と方法を考えましたが出来ませんでした。 もちろん個々のセル情報を一時的に保管することは出来ると思いますが、このような使い方が出来れば、今後のVBA作成作業で幅が出来ると思いまして、ご質問をさせて頂きます。 例; new X名 Rangeオブジェクト作成 X名 = Range("A1") Cells.Clear Range("B1").Formula=X名.Formula Range("B1").Interior.Color=X名.Interior.Color A1のオブジェクトを一時的に保管して、シートクリア後にその情報を利用してB1へ戻す。 こんな感じの使い方です。 宜しくお願い致します。

  • Range("Sheet2!A1")が何故通る?

    Excel VBAでRange関数を使っていて不思議に思う事があったので、少し質問させて下さい。 バージョンは、Office Standard 2010のVer14(32bit)です。 [Range]は、実際には[ActiveSheet.Range]の省略という認識でした。 そして、例えばSheet1がアクティブな状態で[ActiveSheet.Range("Sheet2!A1")]とすればエラーがでます。 [Range(Worksheets("Sheet2").Range("A1"))]でもエラーになります。 ところがこれが、[Range("Sheet2!A1")]だけにすると、問題なくSheet2のA1セルが取得できるのです。 セルに名前を付けた場合も、同じようにアクティブでないシートのセルが取得できました。 場合によって、Rangeの親オブジェクトがActiveSheetであったりなかったりするようなのですが、これはどのような仕様なのでしょうか? Microsoft Docsをざっと見たのですが、載ってなさそうだったので。 以下、自分がチェックに使ったコードです。 Sheet2!A1セルにShTwoという名前を付けています。 Sub test()  Debug.Print Range("A1").Address  Debug.Print Range("A1").Parent.Name ' Debug.Print ActiveSheet.Range("Sheet2!A1").Address '1004:アプリケーション定義またはオブジェクト定義のエラーです  Debug.Print Range("Sheet2!A1").Address  Debug.Print Range("Sheet2!A1").Parent.Name ' Debug.Print ActiveSheet.Range("ShTwo").Address'1004:アプリケーション定義またはオブジェクト定義のエラーです  Debug.Print Range("ShTwo").Address  Debug.Print Range("ShTwo").Parent.Name ' Debug.Print ActiveSheet.Range(Worksheets("Sheet2").Range("A1")).Address '1004:アプリケーション定義またはオブジェクト定義のエラーです ' Debug.Print Range(Worksheets("Sheet2").Range("A1")).Address ''Range'メソッドは失敗しました:'_Global'オブジェクト End Sub

  • VBAのRangeオブジェクトについて

    いつもお世話になっております。 VBAのRangeオブジェクトについてご教示下さい。 例えば下記のPGを組みます。 Sub test() Dim r As Excel.Range Set r = Me.Range("A1") Debug.Print r.Cells.Count End Sub この時、Debug.Printには"1"と表示されます。 Debug.Printでブレイクを置き、ここでA列を削除するとDebug.printでエラーが出てしまいます。 Rangeオブジェクト生成後、もしも参照先のセルが削除してしまった場合、条件分岐の処理を入れたいのですが、どのように処理をいれればよろしいでしょうか? セル削除後、Rangeのプロパティを参照した時点でエラーが発生してしまいます。 Typeで確認するとRangeがちゃんと取れるのですが・・・。 "参照先のセルが消されたかどうか"を判別する方法はあるのでしょうか?

  • マクロでグラフのデータ範囲を換える

    散布図のグラフの参照データをマクロによって変更したいのですが、エラーが出て困っています。どこが誤っているのかご指摘いただければ幸いです。 ワークシート2にあるグラフ1について、 その1つ目のグラフを変更したい。 xの値をワークシート1の (a,7)~(z,7)に yの値を同じく(a,10)~(z,10)にしたいと思っています。 このオブジェクトはこのプロパティかメソッドをサポートしないとのエラーが出ます。 Set range1 = worksheets(1).Range(Cells(a, 7), Cells(z, 7)) Set range2 = worksheets(1).Range(Cells(a, 10), Cells(z, 10)) With Worksheets(2).ChartObjects("グラフ 1") .SeriesCollection(1).XValues = range2 .SeriesCollection(1).Values = range1 End With

  • Range("A" & x) + Range("A" & x+1) +

    Range("A" & x) + Range("A" & x+1) + Range("A" & x+2) + ・・・ + Range("A" & x+n) x:変数(基準点) n:定数(A列のセルをいくつ足し併せるか、を指定。) 上記プログラムをループ的に行うには、どういう書き方をすれば良いでしょうか? Do ~ Loop 文 などを使うのでしょうか。 お詳しい方、教えて下さい。 必ずお返事致します。

  • Excel: SetステートメントでRangeオブジェクトに名前付きセルを指定したい

    Excel VBAです。 RangeオブジェクトにSetステートメントで名前付きセルを指定したのですが、結果、RangeオブジェクトはEmpty値になってしまいます。名前付きではない別のセルでやってみるとうまくいきます。 Dim sSheet as Worksheet Dim wRange as Range Worksheets("Sheet1").Select 【失敗する例:名前付きセルを指定】 Set wRange=Range("c_ControlNo") 【うまくいく例:セルA1を指定】 Set wRange=Range("A1") 名前付きセルは指定できないなんてことはない、と思うのですが、どこがおかしいのでしょうか? アドバイスをお願いします。

  • Excel-VBA rangeプロパティの使い方について

    Excel-VBA rangeプロパティの使い方について VBA初心者です。いろいろ調べたのですが、分からないので教えてください。 ThisWorkbookのSheet1のA1セルに、aというファイルのaというシートの特定のセルの値をコピーしたいです。 コピーする値のセルは、ThisWorkbookで入力した値を基に変数で記述したいです。 例えば、ThisWorkbookのSheet1のC2セルに「D1」と記載していたとして、その値を変数として設定して、最終的にaというファイルのaというシートの「D1」セルをThisWorkbookのA1セルに貼り付けるのが目的です。 この場合の、下記のhensuu = の設定方法について、ご教授願います。 hensuu = ThisWorkbook.Sheets("Sheet1").Range(“A1”)= Workbooks(a).Sheets(a).Range(hensuu)

  • rangeオブジェクトについて

    こんばんわ。 rangeオブジェクトの行数と列数を出したいのですが、やりかた教えていただけませんでしょうか。 以下のように、方法1と方法2を試しましたが、「オブジェクトが必要です」というエラーになります(;;)ついでに、以下2つがなぜだめかも後学のために教えてください(;;) よろしくお願いします。 方法1-- dim rng as range set rng = range(cells(1,1),cells(2,2)) with rng msgbox .columns(.columns.count).column end with 方法2-- dim rng as range set rng = range(cells(1,2),cells(2,2)) msgbox ubound(range,1) -- エクセル2003

  • エクセルVBAでセル選択するコードが変

    エクセルのワークシートでVBAでセル選択するコードで理解に苦しむことがあります。 通常、Cells(2, 1)はセル番地で言えばA2セル Cells(4, 1)はセル番地で言えばA4セルです。 しかし、 With .Range("B5:B15")でくくれば  .Cells(2, 1)はセル番地で言えばB6セルだと思います。 .Cells(4, 1) はセル番地で言えばB8セルだと思います。 ところが下記のコードを動かすと、なぜかC10:C12が選択されてしまいます。 この理屈がわかりません。 Sub test02()   With Sheets("Sheet1")     With .Range("B5:B15")       .Range(.Cells(2, 1), .Cells(4, 1)).Select     End With   End With End Sub なお、 .Range(.Cells(2, 1), .Cells(4, 1)).Selectを .Range(“A2:A4”).Selectに書きかえると、希望のB6:B8が選択されます。

  • EXCEL2002でRange.Copyでエラー

    お世話になります。 OSがWINDOWS XPの環境で EXCEL2002で既存の入力用のシートAとマクロで追加して削除するワーク用に2つのシートB,Cがあるのですが、ワーク用のシートに下記コマンドを実行するとエラーなります。EXCEL2003では問題なく動くのですが、EXCEL2002しか入っていない環境もあるのでご教授して頂ければ助かります。 Sheets("A").Range("d10:d60").Copy Sheets("B").Range("a1) Sheets("A").Range("h10:h60").Copy Sheets("B").Range("51") Sheets("A").Range("e10:e60").Copy Sheets("C").Range("a1) Sheets("A").Range("i10:i60").Copy Sheets("C").Range("51") 以上 宜しくお願いします。