• ベストアンサー

ExcelのVBAで複数の範囲を指定したいのですが

 ExcelのVBAの全くの初心者です。(PC全般については、多少はわかるつもりですが)  R1C1参照という形式を使って、複数のセル範囲を色付けするため指定するにはどのようにすれば良いのでしょうか?  例えば、アクティブセルにA25が指定されていて、A4~C7とE4~F10とI4~I8までを色付けしたいなどという場合。  色付けなどは、わかるのですが、複数の範囲指定がわからないのです。よろしくお願いします。

  • dogs59
  • お礼率77% (279/359)

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

Unionと言うのが例に載っていたので、Cellsでやって見ました。下記ではCellsのカッコ内は、固定数値の例ですが、Cells(i,j)のi,jをコントロールしては。下記は2つの範囲の指定の例で3、4と増やせます。 Sub test01() Union(Range(Cells(1, 2), Cells(3, 4)), Range(Cells(5, 6), Cells(7, 8))).Select End Sub

dogs59
質問者

お礼

 うまくいきました。ありがとうございました。 未だ、完成には程遠いのですが、少しづつでも、勉強しながら進めます。 また困ったらよろしくお願いします。

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.1

マクロの記録を開始し、Ctrlキーを使い、飛び離れた 範囲を指定し、マクロの記録を終了し、マクロ-マクロ名クリック-編集でどう記録されたか見れば良いです。やって見ると Range("A1:B2,C3:D5,A8:B10").Select のようになります。カンマで各範囲を区切っていることが判ります。

dogs59
質問者

お礼

 有難うございます。  ただ、sろえだと、相対参照のときに困るので、R1C1参照での指定が知りたいのです。 Activecell.Range(Cells(1,1),Cells(2,3)),Select のように指定すると、これ自体が範囲として指定されてしまうので。andで繋ぐしかないのでしょうか?

関連するQ&A

  • アクティブセルの行のセルを複数指定選択-VBA

    アクティブセルの行のセルを複数指定選択-VBA コマンドボタンを押すとアクティブセルのある行のセルを個別に選択したいのですが、どのようにVBAにコードを入力すればいいのか悩んでいます。 例:選択したい列(セル)A:C,F:I アクティブセルがA2にある時、コマンドボタンを押してA2,B2,C2,F2,G2,H2,I2を選択する。   アクティブセルがA10にある時は、A10,B10,C10,F10,G10,H10,I10を選択する。 ご回答お待ちしています。宜しくお願い致します。

  • エクセルのVBAのコード内で指定セルを相対参照する方法をお教えください。

    ActiveCell.Offset(0, 2).Range("A1:C1").Select 前記のコードは選択範囲をアクティブセルより相対参照にて指定するものですが、下表にてアクティブセルをA1として、コード内のC1に換えてA1(アクティブセル)の数値によって選択範囲とするセル数を指定するにはどうしたらよいでしょうか?(アクティブセルをA2,A3とした実行結果を2,3行のようにしたいのです)  A B C D E F 1 3 * * * 2 4 * * * *  3 2 * *

  • エクセルの範囲指定

    セルの範囲指定で、例えば、「=average(A1:C30)」という計算式を入れるとします。 そこに、もう1つセルを足す場合は、「,F1」を足して、「=average(A1:C30,F1)」と すると思うのですが、その逆は無いのでしょうか? 「A1:C30」という範囲指定の中の「B20」というセルは省いて範囲指定したい場合は、 なにかいい手が無いでしょうか? エクセルにはそんな考え方はありませんか? どなたかよろしくご教授ください!!

  • エクセルVBAで範囲の指定をしたいです(初心者)

    エクセルVBAで範囲の指定をしたいです(初心者) 列AからJがデータが入る範囲です。 列AとBとCには必ず数値等が何かしら入ります。 列Dは常に空白です。 列E以降は何か入ることも入らないこともあります。 7行目までデータがある場合、 A1セルからこの場合はJ7セルまでを範囲指定したいのですが 行数は未定なので、 Range("A1").Select Range(Selection,Selection.End(xlDown)).Select でA列のデータ最終行まで下がり、そこから9つ右の列までを 範囲指定するというのがよくわかりません。 自動記録で絶対参照と相対参照を切り替えてやってみたのですが、 どうしても Range(Selection, Selection.End(xlDown)).Select ActiveCell.Range("A1:J7").Select と常にA1からJ7が指定になってしまいます。 バージョンは2003です。 つたない質問文で申し訳ありませんが、 どなたか宜しくお願いいたします。

  • VBAでセル範囲条件の指定

    下記のようなことを行いたいのですが、VBAの記述でうまくいかなくて困っています。 ----------------------- もし、現在選択中のセルがA1からA5の範囲にあるならば→「実行1」を行う もし、A1からA5の範囲内にないなら「実行2」を行う ------------------------ たったのこれだけのことなのですが、「A1からA5の範囲」を指定する方法がよくわかりません。 ------------------------ Sub セル範囲判定() If ActiveCell = Range("A1:A5") Then MsgBox "A1:A5がアクティブです" Else MsgBox "A1:A5がアクティブではありません" End If End Sub ------------------------- などとしてもうまくいきません。 構文が良くわかっていないので困っています。 「アクティブセルが○○なら」という部分を教えていただけると助かります。

  • Excel VBAの範囲の取得について

    Excel VBAを使い、ある範囲に含まれるセル番号を取得しようとしています。 まず、ある範囲、の指定方法から悩んでいます。 ある範囲を、A1:C5とした場合、 1.A1:C5に同じ文字列を入力し、それを判別して同じ範囲内だと判断させる。 2.A1:C5の範囲に名前を付ける。 3.A1:C5のセルを結合する。 などの方法を思いつきました。 それ以降の処理はA1:C5の範囲だと、『左上はA1,右下はC5』という風に、範囲を作っている左上と右下のセル番号を参照するようにしたいと思っています。 分からなくなってしまっているのは、他に範囲として扱いたい数個のセルが別にも幾つかあって、それを最初に認識した範囲とは別物だと扱いたいと思っています。 たとえば、先ほどA1:C5という範囲を決めましたが、D2:E4という別の範囲があるとします。 A1から順に調べて行って、C5までが同じ範囲と判断されたら、また次のひと塊の範囲はないか調べ、D2:E4が見つかったら処理をする、という感じなのですが、一度調べた範囲はもう調べないとする方法が思いつきません。 ひとくくりにしたい範囲は、毎度変わりますし、範囲に含まれるセルの数もまちまちです。 上記の、範囲を決める3つの方法それぞれによって、その後の方法も変わってきそうな感じがするのですが、どれが一番適当な方法かも決めかねています。 範囲指定しようとしているセルが一つのみだった場合、結合している範囲かどうかを調べる方法は使えない気もします。 分かりづらい質問で申し訳ありません。 よろしくお願いいたします。

  • エクセルVBAで複数範囲の変数使用指定方法につい

    エクセルVBAの初心者です。複数の範囲を変数を使用して指定したいのですが、色々と調べてみましたがよくわかりません。 一つの範囲に対しては、下記の方法で正常に動きました。 i1=1 j1=3 i2=4 j2=8 Range(Cells(j1, i1), Cells(j2, i2)).Name = "範囲_全体" 異なる範囲に対して変数を使用せずに名前をつける場合は下記の方法で動くことがわかっています。 Range("A3:A8, C3:C8").Name = "範囲_分離" 但し、例えば Cellsを使用して Range(Cells(3, 1), Cells(8, 1)) と Range(Cells(3, 3), Cells(8, 3)) を まとめて「範囲_分離」と名前を付けたいのですが、よくわかりません。 どなたかご教授方、お願いいたします。

  • EXCEL VBA で指定した範囲に入力があるかどうか?

    こんばんは!! EXCEL VBAを使い出して、初日からつまずいてます・・・。 みなさん、アドバイスよろしくお願いします!! で、早速、質問なんですけど、 指定したセル範囲のいずれかに入力があるか調べたいんですけど、それができるプロパティとかってあるんでしょうか? 地道にセル毎にチェックするしかないいんでしょうか?? たとえば、範囲をA1:H1として、その範囲内のセルに何か入力があったらTrueが返ってくるとか・・・。 もし、知ってる方がいらっしゃたら教えてください!! よろしくお願いします!!!!!

  • VBA)範囲指定した全セルに関数を入れたいのですが。。。

    当方、始めてのマクロ作成に奮闘中の身です。 ご教授いただきたく、質問させていただきます。 ◎質問 範囲指定した全セルに関数を入力したいのですが、アクティブセルのみにしか関数が入らず困っています。    Dim abc As Integer       abc = Sheets("シート名").Range("A1").CurrentRegion.Rows.Count    Range(Cells(2, 12), Cells(abc, 12)).Select    ActiveCell.FormulaR1C1 = "=COUNTIF(R1C1:RC[-11],RC[-11])" 一番下の部分の関数を入力したいのですが、アクティブセルのみの入力になってしまい、下から2番目の指定範囲には反映されません。 下から2番目の指定範囲セル全てに適用するにはどうしたら良いでしょうか。 よろしくお願いいたします。

  • Excel VBA アクティブセルからある一定のセルまでの範囲選択

    Excel VBA アクティブセルからある一定のセルまでの範囲選択 Excel2003を使用しています。 アクティブセルからC列に『計』と入力されている行の1行上のD列までを選択状態にするマクロを作成しようとしています。 C列に『計』と入力されている行は下記のように複数あるので、アクティブセルの行以下に入力されている次のC列の『計』の1行上までとしたいのですが、どのようにコードを書いたらいいでしょうか? 例えば… A2セルをアクティブにしていてマクロを実行するとA2:D3が選択状態に A7セルをアクティブにしていてマクロを実行すると、A7:D9が選択状態になるように という具合です。 わかりづらくて申し訳ありませんが、よろしくお願いします。    A     B     C     D 1  日付    №   品名    金額 2  1/1     1    ○○○   1,000 3  1/2     2    ×××   1,500 4              計      2,500 5 6 7   1/1     5    ○×○   2,000 8   1/3     6    ××○   1,200 9   1/4     7    ×○○   2,500               計      5,700            :            :

専門家に質問してみよう