• 締切済み

VBAでのセルの選択で Cells Range R1C1 の使い分け

セルを指定するときに Cells Range R1C1のどれかを使うと思いますが、 どういうときにどれを使うといった決まりはあるのでしょうか? 慣れとか好みで使い分けるのでしょうか? ひとつのプロジェクトに対して、 CellsならCellsで一貫して使ったほうがわかりやすいと思うのですが そういう理解でいいのでしょうか? VBAの勉強をはじめたばかりなので、 おかしな質問だったら失礼します。

noname#201721
noname#201721

みんなの回答

回答No.1

こんばんは。 Excel VBA の Cells や Range などの使い分けですが、 (1) Cells  1つのセル位置に対して操作する場合に使用します。  また、for 文などで、列方向や行方向に移動しながら  繰り返し処理する場合に、セル位置をループの  カウンタ変数を使って指定できます。  for rowNo = 1 to 3   for colNo = 1 to 2    msgbox "行 : " & rowNo & ", 列 : " & colNo & _      ", 値 : " & Cells( rowNo, colNo ).value   next  next (2) Range  セル位置が固定で指定する場合やセル範囲を指定する  場合、あるいは Range でしか使用できないメソッド  やプロパティを使用する場合に使用します。  Range("A1").Select  Range("A1:B3").ClearContents  Range( Cells(1,1), Cells(2,3) ).Select

noname#201721
質問者

お礼

なるほど。 一部解決しました。 ありがとうございました。

関連するQ&A

  • Cells(1,3)をRange("C1")に変換

    Sheets(Sn).Range("A1:Z98").Copy Destination:=Sheets(Sn).Range("V9") r=131です 上記のVBAを使用したいのですが求められるのはCells(r-1,3)なのです。そのためにCells(r-1,3)をRange("C130")に変換できないでしょうか よろしくお願いします。

  • range cells 名称があれば教えてください

    MsgBox range("a1").Value MsgBox Cells(1, 1).Value どちらもセルA1の値を取得できるコードですが それぞれ何方式っていう名称があれば教えてもらえますか? 上はRange方式、で下は、Cells方式でしょうか? (エクセルvbaです)

  • エクセルVBAで3つ以上のセルをCellsで選択

    エクセル2003のVBAについてお尋ねします。 行番号についてDim X As Integer の構文を使っている関係で Cells(X, 1) Cells(X, 3) Cells(X, 5)などのようにセルの選択をCellsで行う必要があります。 Cellsで離れ離れの3つ以上のセルを同時に選択するには、どのようにしたらよいのでしょうか? Range(Cells(X, 1), Cells(X, 3)).Select では2つしか選択できず困っています。 よろしくお願いいたします。

  • エクセルのCELLS関数で複数セルを選択したい

    こんにちは。EXCEL VBAのことで質問させていただきます。 複数セル(たとえばA1からC1)をまとめて選択する際、 Range("A1:C1").Select と記述すると思います。 これを「Range」ではなく「Cells」で記述できないでしょうか? 宜しくお願い致します。

  • ExcelVBAで「Cells」を使ってセルの選択範囲を指定する方法

    例えば、セル「A1」から「C5」とセル「F1」から「I4」の範囲を選択する場合、 Range("A1:C5,F1:I4").Select としますがこれを「Cells(Row,Column)」を使うやり方はどのようにすればよいのでしょうか? Range(Cells(1, 1), Cells(5, 3)).Select Range(Cells(1, 6), Cells(4, 9)).Select 上記のような二つに分けてプログラムを動かすのではなく、あくまでセル「A1」から「C5」とセル「F1」から「I4」の範囲を同時に指定する方法です。 回答よろしくお願いします。

  • エクセル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が選択されます。

  • VBA Range・Cellsプロパティについて

    下記のコードについて質問致します。 Sub 特定のセルをコピー() Dim rw2 As Long Dim rw1 As Long Dim newdate As Date With Worksheets("steet1") rw2 = .cells(.Rows.Count, "c").End(xlUp).Row newdate = .Range("c" & rw2).value For rw1 = rw2 - 1 To 1 Step -1 If .Range("c" & rw1).value <> newdate Then Exit For Next rw1 .Range(.cells(rw1 + 1, 1), .cells(rw2, 1)).Copy     '(1) Worksheets("steet2").Range("v6").PasteSpecial xlValue End With End Sub (1)部分のコードの意味が分かりません。 よろしくお願いします。

  • ExcelのVBAでRangeとCellsをWSHから使いたいのですが・・

    エクセルに書き込むマクロのコードを書いていたのですが、 Exl.range(Cells(1, 1), Cells(3, 4)).Font.Bold = True のような部分が、VisualBasic や OFFICEのVBA上で 参照設定でExcelを指定していると、動くのですが、 同じコードが、WSHでは参照設定ができないせいなのか、 動きません。WSHの場合、どのようにしたらよいのでしょうか。 よろしくお願いします。

  • RangeプロパティとCellsプロパティ

    お世話になります。 現在、VB.NET2003からExcel2003を操作するプログラムを作成しているのですが、基本的な点が一つ、わかりませんので、教えていただけないでしょうか? Range("C5")は、Cells(5,3) Range("B1:D5")は、Range(Cells(1,2), Cells(5,4))、 と表すことが出来ますが、 Range("A1:E1,A4:E7")はCellsプロパティではどのように指定すればよろしいのでしょうか? 以上、宜しくお願いいたします。

  • ExcelマクロでRange("A1:A5,C1:C5")をCellsで書きたいのですが

    マクロ初心者です。 Excelマクロでグラフを作成するときに、元データを指定する所で、 Source:=Range("A1:A5,C1:C5")とするような場合、 「A1」とかアルファベットでの番地指定ではなく、 Cellsを用いて書きたいのです。 Source:=Range("A1:A5")であれば、 Source:=Range(Cells(1, 1), Cells(5, 1))と書けばいいことは分かるのですが、範囲指定を複数にする場合が分からないのです。 よろしくお願いします。

専門家に質問してみよう