excel vbaの「range」を簡単に説明しました。
excelのvbaをマスターしましょう!
excel vba 簡単・解決! Homeへ
range
excelのvbaで Range オブジェクトは、セル操作の基本オブジェクトです。
理由は、セルがRangeオブジェクトのプロパティとなっているからです。
自動化する操作の中で、セルに関連した内容を説明しました。
まず、特定のセルをアクティブにすることがプログラムの最初で発生します。
Range("A1").Activate でA1がアクティブになります。
また、そのA1があるワークシートがアクティブになっている必要があります。
1.複数のセルを一度に指定し、値を代入するには
(1) Range("A1:B3").Value = 5
A1:B3に一度で5を代入できます。
この命令は、Range(Cells(1, 1), Cells(2, 3)).Value = 5 と同じです。 Cellsは、ActiveSheet.Cellsの省略形です。
(2) Range("A1, B3 , C5").Value = ""
A1、B3、C5に対して同時に空白を代入できます。
(3) Rows(5).Value = ""
5行目全体に空白を代入できます。
この命令は、Range("5:5").Value = ""と同じす。
(4) Columns(7).Value = ""
7行目全体に空白を代入できます。
この命令は、Range("G:G").Value = ""と同一です。
2.複数の行と列を一度に指定し、値を代入するには
(1) Range("5:7").Value = ""
5行目から7行目まで全体に空白を代入できます。
次の命令と同じ結果になります。
Rows(5).Value = ""
Rows(6).Value = ""
Rows(7).Value = ""
(2) Range("B:D").Value = ""
B列からD列全体に空白を代入できます。
3.セル操作のプロパティ・メッソド
(1)Cells(行、列)
行と列で、位置を指定できます。
※ 「Cells」の詳細は、 Cells 記事を参照ください。
(2)ActiveCell
現在アクティブになっている範囲で、例えば、次の命令で使用します。
1)ActiveCell.Value = "123" 2) ActiveCell.Row 3) ActiveCell.Column 4) ActiveCell.Address
(3)Offset(行、列)
指定した行数と列数だけ移動した相対的な位置を意味します。
ActiveCell.Offset(1,0).Value = 3 は、アクティブセルの1行下に「3」を代入できます。
この場合、基準はアクティブセルです。
Range("A2").Offset(1,0)は、セルA2の一行下を示します。
この場合、基準はA2です。
(4)Union(範囲1、範囲2、・・・・、範囲30)最小2から〜最大30までのセル範囲を同時に指定できます。
次のプログラムは、複数の範囲の文字色を同時に変更できます。
Set myRange = Application.Union(Range("A1:C4"), Range("E5:G7"))
myRange.Font.ColorIndex = 5
範囲A1:C4とE5:G7の文字色が青に変わります。
(5)Selection
次のプログラムは、選択したセルに空白を代入します。
選択は、Ctrlキーを押しながらマウスで一つひとつ選択します。
For Each objI In Selection
objI.Value = ""
Next
(6)InterSection(範囲1、範囲2)
2つの範囲の共通範囲を指定出来ます。 共通領域がない場合、Nothing が返されます。
(7)CurrentRegion
連続してつながっている領域を示します。
(8)UsedRegion
使用されている領域を示します。
(9)END(方向)
連続したセル領域の端を知ることができます。
Range("A1").End(xlUp) .Value で領域の上端の値
Range("A1").End(xlToRight) .Value で領域の右端の値
Range("A1").End(xlToLeft) .Value で領域の左端の値
Range("A1").End(xlDown).Value で領域の下端の値
注意: 途中に空白がある場合、連続していないため、その先は対象外です。
Range("A1").End(xlDown).Row で領域の下端のセルの行番号を知ることができます。
したがって、リストやテーブルがA1から作られている場合、最下端の行番号は、次の命令で求めることができます。
intMaxL = Range("A1").End(xlDown).Row
A1が空白の場合、intMAxL は、2です。
excelのvbaをマスターしましょう。
excel vba 簡単・解決! Homeへ
【セルの最新記事】

