CurrentRegion

タグ:

現在の領域を表すRangeオブジェクトを返します。現在の選択範囲は、空白の行と空白の列の任意の組み合わせで囲まれた範囲です。読み取り専用です。CtrlShiftCtrl)を押すのと同様です。

構文
Range = Range.CurrentRegion
引数
戻り値
現在の領域を表すRangeオブジェクト

Range オブジェクトを返す可能性のあるメソッド・プロパティ

Range.CurrentRegion プロパティ (Excel)
CurrentRegion (Excel)
Application.Cells プロパティ (Excel)
Range.Find メソッド (Excel)
Range.SpecialCells メソッド (Excel)
Range.Columns プロパティ (Excel)
Range.CurrentRegion プロパティ (Excel)
Range.End プロパティ (Excel)
Range.EntireColumn プロパティ (Excel)
Range.EntireRow プロパティ (Excel)
Range.Item プロパティ (Excel)
Range.Offset プロパティ (Excel)
Range.Resize プロパティ (Excel)
Range.Rows プロパティ (Excel)

プログラム実行例

アクティブセル領域を含む表を選択*

DIM path = "東京月別平均気温(2000-2019年).xlsx"
DIM Excel = ExcelBoot(path)

Excel.Range("B4").CurrentRegion.Select

//////////////////////////////////////////////////
// 【引数】
//   path : 開くファイルのパス名 
// 【戻値】
//   Excelオブジェクト 
//////////////////////////////////////////////////
FUNCTION ExcelBoot(path = "")
	DIM Excel = CREATEOLEOBJ("Excel.Application")
	Excel.Visible = TRUE
	IFB path = "" THEN
		Excel.Workbooks.Add
	ELSE
		DIM FSO = CREATEOLEOBJ("Scripting.FileSystemObject")
		IFB FSO.GetParentFolderName(path) = "" THEN
			path = GET_CUR_DIR + "\" + path
		ENDIF
		Excel.Workbooks.Open(path)
	ENDIF
	RESULT = Excel
FEND
  1. Range.CurrentRegion プロパティ
  2. Range.Select メソッド
結果

ソート

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

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

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

//////////////////////////////////////////////////
// 【引数】
//   path : 開くファイルのパス名 
// 【戻値】
//   Excelオブジェクト 
//////////////////////////////////////////////////
FUNCTION ExcelBoot(path = "")
	DIM Excel = CREATEOLEOBJ("Excel.Application")
	Excel.Visible = TRUE
	IFB path = "" THEN
		Excel.Workbooks.Add
	ELSE
		DIM FSO = CREATEOLEOBJ("Scripting.FileSystemObject")
		IFB FSO.GetParentFolderName(path) = "" THEN
			path = GET_CUR_DIR + "\" + path
		ENDIF
		Excel.Workbooks.Open(path)
	ENDIF
	RESULT = Excel
FEND
  1. ExcelBoot
解説
  1. 10行目
    DIM Excel = ExcelBoot("D:\Documents\都道府県別人口.xlsx")
    ファイルを開く。
  2. 16行目
    			.Add(Excel.Range("C2").End(xlDown), xlSortOnValues, xlDescending, xlSortNormal)
    並び替えのキー値をセル範囲で指定。並び替えの対象に「値(xlSortOnValues)」を指定。並び替えの順序に「降順(xlDescending)」を指定。
  3. 18行目
    		.SetRange(Excel.Range("A1").CurrentRegion)
    並び替えが行われる範囲にセルA1を含む表全体を指定。CurrentRegionは空白で囲まれた範囲を取得するので、セルA1を含む表のセル範囲が取得できます。表のサイズが変わっても対応できます。
  4. 19行目
    		.Header = xlYes
    最初の行がヘッダーなので「xlYes」を指定。
  5. 20行目
    		.MatchCase = FALSE
    大文字と小文字を区別しない(False)。
  6. 21行目
    		.Orientation = xlTopToBottom
    行の入れ替えを行う。
  7. 22行目
    		.SortMethod = xlPinYin
    日本語をふりがなで並び替えます。
  8. 23行目
    		.Apply
    Sort.Applyでソートが実行されます。これを記述しないとソートされません。

関連記事

Application.ActiveCell プロパティ (Excel)
アクティブな1つのセルを表すRangeオブジェクトを取得します。
Application.Cells プロパティ (Excel)
作業中のワークシートのすべてのセルを表すRangeオブジェクトを返します。
Application.Range プロパティ (Excel)
セルまたはセル範囲を表すRangeオブジェクトを返します。
Range.Merge メソッド (Excel)
指定したRangeオブジェクトから結合されたセルを作成します。
Range.UnMerge メソッド (Excel)
結合された領域をそれぞれのセルに分割します。
Range.Borders プロパティ (Excel)
セルの罫線を表します。
Range.Columns プロパティ (Excel)
指定した範囲の列を表すRangeオブジェクトを返します。
Range.Count プロパティ (Excel)
コレクションに含まれるオブジェクトの数を返します。
Range.MergeCells プロパティ (Excel)
セルの結合状態を設定または取得します。値を指定しなかった場合は結合状態を取得します。
Range.Rows プロパティ (Excel)
指定した範囲の行を表すRangeオブジェクトを返します。