Rangeレンジ オブジェクト

本ページには広告が含まれています。

セル、行、列、連続した1つ以上のセル範囲を表します。

構文
  1. Range = Range.[_Default]( Cell1, Cell2 )
既定プロパティ
Range.Value プロパティ
引数
Cells1 省略可
範囲を指定します。範囲名には、範囲を表す演算子:、共通部分を表すスペース 、または複数の範囲を表す演算子,を使うことができます。
Cells2 省略可
セル範囲の左上隅と右下隅のセルを指定します。
戻り値
セルまたはセル範囲を表すRange オブジェクト

Range オブジェクト を返すメソッド・プロパティ

Range オブジェクト
セル、行、列、連続した1つ以上のセル範囲を表します。
Application.ActiveCell プロパティ
セルまたはセル範囲を表すRangeオブジェクトを返します。
Application.Cells プロパティ
作業中のワークシートのすべてのセルを表すRange オブジェクトを返します。
Excel.Range
セル、行、列、連続した1つ以上のセル範囲を表します。
Application.Selection プロパティ
Applicationオブジェクトのアクティブなワークシートで現在選択されているオブジェクトを返します。
Excel.Range
指定した条件に一致する最初のセルを検索します。
Excel.Range
Findメソッドによって開始された検索を続行します。前回の検索条件に一致するセルを、下方向(行のときは左から右、列のときは上から下)に検索し、見つかったセル(Rangeオブジェクト)を返します。選択範囲やアクティブセルには影響はありません。
Excel.Range
範囲内のセルから特定の条件に一致するRange オブジェクトを返します。条件は、セルの種類(数値、テキスト、エラーなど)やセルの状態(空白、定数、数式など)に基づいて指定することができます。
Excel.Range
指定した範囲の列を表すRange オブジェクトを返します。
Excel.Range
現在の領域を表すRange オブジェクトを返します。
Excel.Range
対象セル範囲の領域における終端のRange オブジェクトへの参照を返します。
Excel.Range
指定された範囲を含む1つまたは複数の列全体を表すRange オブジェクトを返します。読み取り専用です。
Excel.Range
指定されたセル範囲を含む行全体を表すRange オブジェクトを返します。読み取り専用です。
Excel.Range
指定したセル範囲のオフセット値で指定される範囲を表すRange オブジェクトを返します。
Excel.Range
指定された範囲からオフセットした範囲を表すRange オブジェクトを返します。
Excel.Range
指定された範囲のサイズを変更します。サイズが変更されたセル範囲を表すRange オブジェクトを返します。
Excel.Range
指定した範囲の行を表すRange オブジェクトを返します。
Worksheet.Range プロパティ
セル、行、列、連続した1つ以上のセル範囲を表します。

関連するメソッド・プロパティ

_表示形式.png
項目メソッド・プロパティ
表示形式Range.NumberFormatLocal プロパティ
_配置.png
項目メソッド・プロパティ
文字の配置
横位置Excel.Range
縦位置Excel.Range
インデントExcel.Range
前後にスペースを入れるExcel.Range
文字の制御
折り返して全体を表示するExcel.Range
縮小して全体を表示するExcel.Range
セルを結合するExcel.Range
右から左
文字の方向Excel.Range
方向Range.Orientation プロパティ
_フォント.png
項目メソッド・プロパティ
フォント名Font.Name プロパティ
スタイルFont.FontStyle プロパティ
サイズExcel.Range
下線Excel.Range
Excel.Range
標準フォントExcel.Range
文字飾り
取り消しExcel.Range
上付きFont.Superscript プロパティ
下付きExcel.Range
_罫線.png
項目メソッド・プロパティ
スタイルExcel.Range
Excel.Range
Excel.Range
Excel.Range
罫線Excel.Range
_塗りつぶし.png
項目メソッド・プロパティ
背景色Excel.Range
Excel.Range
塗りつぶし効果Excel.Range
その他の色Excel.Range
パターンの色Excel.Range
パターンの種類Excel.Range
_保護.png
項目メソッド・プロパティ
ロックExcel.Range
表示しないExcel.Range

セルの指定の仕方

単一セル

セルA1を指定する例。

UWSC
WITH Excel
	.Range("A1")
	.Range(.Cells(1, 1).Address)
ENDWITH

セル範囲

セル範囲A1〜C5を指定する例。

UWSC
WITH Excel
	.Range("A1:C5")
	.Range("A1", "C5")
	.Range(.Range("A1"), .Range("C5"))
	.Range(.Cells(1, 1), .Cells(5, 3))
	.Range("A1", .Cells(5, 3))
	.Range(.Cells(1, 1), "C5")
	.Range(.Range("A1"), .Cells(5, 3))
	.Range(.Cells(1, 1), .Range("C5"))
ENDWITH

複数セル

複数のセルまたはセル範囲を指定する場合、「,(カンマ)」で区切り指定します。

UWSC
Excel.Range("A1,B3")   // セルA1とセルB3

名前付きセル範囲

引数に定義した名前の文字列を指定します。セル範囲に名前を定義するには、Excel.Rangeを使います。

UWSC
Excel.Range("定義した名前")

共通セル範囲

セルまたはセル範囲を半角のスペースで区切ると共通するセル範囲を取得できます。

UWSC
WITH Excel
	.Range("A1:D6 B4:F8")           // .Range("B4:D6")
	.Range("A1:D6 B4:F8 B5:B10")    // .Range("B5:B6")
ENDWITH

行・列

UWSC
WITH Excel
	.Range("1:1")       // 1行目のすべてのセル
	.Range("1:3")       // 1〜3行目のすべてのセル
	.Range("1:5,8:9")   // 1〜5行目、8〜9行目のすべてのセル

	.Range("B:B")       // B列(2列目)のすべてのセル
	.Range("B:E")       // B〜E列(2〜5列目)のすべてのセル
	.Range("A:C,E:F")   // A〜C列、E〜F列のすべてのセル
ENDWITH

メソッド

<表示切り替え>

Activate
1つのセルをアクティブにします。セルは現在の選択範囲内にある必要があります。セルの範囲を選択するには、Selectメソッドを使用します。
AutoFill
指定された対象セル範囲内のセルに対してオートフィルを実行します。
AutoFilter
オートフィルターを使ってリストをフィルター処理します。
ClearComments
指定されたセル範囲からすべてのコメントを消去します。
ClearHyperlinks
指定された範囲からすべてのハイパーリンクを削除します。
Copy
範囲を、指定の範囲またはクリップボードにコピーします。
DiscardChanges
編集されたセル範囲内のすべての変更を破棄します。
PasteSpecial
指定された範囲にコピーされたRangeオブジェクトを貼り付けます。
Select
オブジェクトを選択します。

プロパティ

<表示切り替え>

Borders
セルの罫線を表します。
Comment
Count
コレクションに含まれるオブジェクトの数を返します。
NumberFormatLocal
Orientation
Row
範囲内の最初の領域の行番号を返します。
Value

プログラム実行例

罫線を引く

B2セルにカラーパレット1番の色で罫線(外枠)を引きます。

UWSC
CONST xlContinuous = 1

DIM Excel = CREATEOLEOBJ("Excel.Application")
Excel.Visible = TRUE
Excel.Workbooks.Add()

DIM Borders = Excel.Range("B2").Borders

WITH Borders
	.LineStyle = xlContinuous
	.ColorIndex = 1
ENDWITH
使用関数

日付の連続データを入力する*

A1セルに2021/01/01と入力し、行方向に1日ずつ加算し2021/12/31まで入力します。

A1セルに2021/01/01と入力し、[フィル]→[連続データの作成]で範囲を行、種類を日付、増加単位を日、増分値を1、停止値を2021/12/31と設定するのと同様です。

UWSC
CONST xlCols = 2
CONST xlChronological = 3
CONST xlDay = 1

WITH Excel.Range("A1")
	.Value = "2021/01/01"
	.DataSeries(xlCols, xlChronological, xlDay, 1, "2021/12/31")
	.EntireColumn.AutoFit
ENDWITH
使用関数

1〜12月の連続データを作成*

UWSC
WITH Excel.Range("A1")
	.Value = "1月"
	.AutoFill(.Resize(12))
ENDWITH
使用関数

2ヶ月毎の連続データを入力*

UWSC
CONST xlColumns = 2
CONST xlChronological = 3
CONST xlMonth = 3

WITH Excel.Range("A1")
	.Value = "2021/01/01"
	.DataSeries(xlColumns, xlChronological, xlMonth, 2, "2021/12/31")
	.EntireColumn.AutoFit
ENDWITH
使用関数

セルの位置を取得*

現在選択されているセル情報を取得します。Book1シートのA1セルが選択されている状態で実行しています。

UWSC
CONST xlA1 = 1
CONST xlR1C1 = -4150

WITH Excel.Application.Selection
	PRINT "絶対参照<#TAB><#TAB>" + .Address
	PRINT "絶対参照(行)<#TAB>" + .Address(TRUE, FALSE)
	PRINT "絶対参照(列)<#TAB>" + .Address(FALSE, TRUE)
	PRINT "相対参照<#TAB><#TAB>" + .Address(FALSE, FALSE)
	PRINT "R1C1形式<#TAB><#TAB>" + .Address(TRUE, TRUE, xlR1C1)
	PRINT "外部参照<#TAB><#TAB>" + .Address(TRUE, TRUE, xlR1C1, TRUE)
ENDWITH
結果
プレーンテキスト
絶対参照		$A$1
絶対参照(行)	A$1
絶対参照(列)	$A1
相対参照		A1
R1C1形式		R1C1
外部参照		[Book1]Sheet1!R1C1
使用関数

表を作成

UWSC
// XlBordersIndex
CONST xlDiagonalDown = 5
CONST xlEdgeLeft = 7
CONST xlEdgeTop = 8
CONST xlEdgeBottom = 9
CONST xlEdgeRight = 10

// XlLineStyle
CONST xlDouble = -4119
CONST xlContinuous = 1

// XlBorderWeight
CONST xlThick = 4

DIM Excel = ExcelBoot()

WITH Excel
	.Range("B2:F6").Borders.LineStyle = xlContinuous
	.Range("B2:F6").BorderAround(xlContinuous, xlThick)
	.Range("F2:F6").Borders(xlEdgeLeft).LineStyle = xlDouble
	.Range("B6:F6").Borders(xlEdgeTop).LineStyle = xlDouble
	.Range("B2").Borders(xlDiagonalDown).LineStyle = xlContinuous
	WITH .Range("B2:B6").Borders(xlEdgeRight)
		.LineStyle = xlContinuous
		.Weight = xlThick
	ENDWITH
	WITH .Range("B2:F2").Borders(xlEdgeBottom)
		.LineStyle = xlContinuous
		.Weight = xlThick
	ENDWITH
ENDWITH
結果
.png
使用関数
解説

ソート

人口の多い順にソートします。

使用したファイルをダウンロードできます。

[download "/example/510/都道府県別人口.xlsx"]
UWSC
CONST xlDown = -4121
CONST xlSortOnValues = 0
CONST xlDescending = 2
CONST xlSortNormal = 0
CONST xlYes = 1
CONST xlGuess = 0
CONST xlTopToBottom = 1
CONST xlPinYin = 1

DIM Excel = ExcelBoot("D:\Documents\都道府県別人口.xlsx")

WITH Excel.ActiveSheet
	WITH .Sort
		WITH .SortFields
			.Clear
			.Add(Excel.Range("C2").End(xlDown), xlSortOnValues, xlDescending, xlSortNormal)
		ENDWITH
		.SetRange(Excel.Range("A1").CurrentRegion)
		.Header = xlYes
		.MatchCase = FALSE
		.Orientation = xlTopToBottom
		.SortMethod = xlPinYin
		.Apply		
	ENDWITH
ENDWITH
使用関数
解説

コロナのPCR検査実施人数のグラフを生成(Excel)

オープンデータ|厚生労働省PCR検査実施人数のCSVデータを使用。

UWSC
CONST xlColumnClustered = 51

DIM Excel = CREATEOLEOBJ("Excel.Application")
Excel.Visible = TRUE
Excel.Workbooks.Open("D:\Downloads\pcr_tested_daily.csv")

DIM Range = Excel.Range("A1").CurrentRegion
DIM Charts = Excel.Charts.Add()  // Sheetsオブジェクト

WITH Charts
	.ChartType = xlColumnClustered
	.SetSourceData(Range)
ENDWITH
結果
PCR検査実施人数_データ.png PCR検査実施人数_グラフ.png
使用関数

参考文献

  1. Range オブジェクト (Excel) | Microsoft Learn

関連記事

Range.AutoFill メソッド (Excel)
指定された対象セル範囲内のセルに対してオートフィルを実行します。
Range.AutoFilter メソッド (Excel)
オートフィルターを使ってリストをフィルター処理します。
Range.ClearHyperlinks メソッド (Excel)
指定された範囲からすべてのハイパーリンクを削除します。
Range.Copy メソッド (Excel)
範囲を、指定の範囲またはクリップボードにコピーします。
Application.ActiveCell プロパティ (Excel)
セルまたはセル範囲を表すRangeオブジェクトを返します。
Application.Cells プロパティ (Excel)
作業中のワークシートのすべてのセルを表すRange オブジェクトを返します。
Range.DiscardChanges メソッド (Excel)
編集されたセル範囲内のすべての変更を破棄します。
Range.NumberFormatLocal プロパティ (Excel)
Range.Orientation プロパティ (Excel)
Range.Row プロパティ (Excel)
範囲内の最初の領域の行番号を返します。