はてなブックマークに追加
Facebookでシェア
Google+でシェア
Twitterでシェア
5.1 セルや行列を扱うための基本
値を入れたり罫線を引いたり背景色を変えたりコピーしたり貼付けたりなど、セルや行列を扱うときの基本です。セルを扱う場合はRangeまたはCellsを使い、列を扱う場合はRangeまたはColumns、行を扱う場合はRangeまたはRowsを使います。
1つのセルを指定する場合
 1つのセルを指定する場合です。Rangeを使う場合とCellsを使う場合の2種類あります。Cellsで指定する場合は、行番号列番号を数値で指定します。Rangeで指定する場合は、A1C5などのセル名を指定します。

 どちらの場合も、メソッド/プロパティには、コピー・貼り付け・書式の変更や設定など、セルに対して行う操作の内容を記述します。

図 5-1-1Cellsでセルを指定する
Cells(RowIndex, ColumnIndex).メソッドプロパティ
1つのセルを表します。
RowIndex(行番号)
 行番号です。Excel 2003までは「1〜65,535」、Excel 2007以降は「1〜1,048,576」の整数で記述します。

ColumnIndex(列番号)
 列番号です。Excel 2003までは「1〜256」、Excel 2007以降は「1〜16,384」の整数で記述します。

【記述例】 C5セルをCellsで選択します。
Cells(5, 3).Select

図 5-1-2Rangeでセルを指定する
Range(Cell).メソッドプロパティ
Rangeオブジェクトの基本書式です。
Cell(セル名)
 A1やC5のようなセルの名前や、A1:C5のようなセルの範囲を文字列で記述します。

【記述例】 C5セルをRangeで選択します。
Range("C5").Select
セルの範囲を指定する場合
次に、範囲を指定する場合です。範囲を指定する場合、基本的にはRangeを使います。

まずは、セル名で範囲を指定する場合です。セル名で範囲を指定する場合は A1:C6B2:J6 のように、選択範囲の開始セル名終了セル名コロン記号(:)で区切って指定します。例えば、下の図のようにA1〜C6の範囲を使いたいときはRange("A1:C6")です。

図 5-1-3セル名でセルの範囲を指定する例
範囲の開始と終了のセル名を、コロン記号で区切って指定します。

【記述例】 A1〜C6セルをRangeで選択します。
Range("A1:C6").Select

もう一つ方法があります。セルの範囲にCellsを使う方法です。Cellsを2つ指定していますが、左(Cells(行番号1, 列番号1))が選択開始位置、右(Cells(行番号2, 列番号2))が選択終了位置です。

この方法で指定する場合はR1C1参照形式でセルの位置を考えるのがコツ。例えば、A1〜C6をR1C1参照形式で表すとR1C1〜R6C3です。そして、この範囲を指定する場合はRange(Cells(1, 1), Cells(6, 3))です。

図 5-1-4セル名でセルの範囲を指定する
Range(Cell1, Cell2).メソッドプロパティ
Rangeオブジェクトの基本書式です。
Cell1Cell2(開始地点と終了地点)
 表の開始地点と終了地点のセルを、Cellsで記述します。
 参考までに、開始と終了のセルを同じにすると、1つのセルを指定したことになります。

【記述例】 A1〜C6セルの範囲をCellsで指定します。
Range(Cells(1, 1), Cells(6, 3)).Select
行を指定する場合
 今度は、行を指定する場合です。RowsまたはRangeを使います。

 まずは、Rowsで指定する場合です。1行を指定する方法と、行の範囲を指定する方法の2種類あります。まずは1行を指定する方法ですが、Rows(行番号)のように行番号を数値で指定します。また、行の範囲を指定する場合はRows("開始行番号:終了行番号")のように開始と終了の行番号を:で区切り数値で指定します。

図 5-1-5Rowsで行を指定する
[書式1]
Rows(RowIndex).メソッドプロパティ
Rowsの基本書式です。1行だけ指定します。

[書式2]
Rows("開始行番号:終了行番号").メソッドプロパティ
行の範囲を指定するときの書式です。
行番号は、Excel 2003までは「1〜65,535」、Excel 2007以降は「1〜1,048,576」が指定できます。

RowIndex(行番号)
 行番号を整数値で記述します。

開始行番号:終了行番号(行の範囲指定)
 開始地点と終了地点行番号を、コロン記号で区切りそれぞれに記述します。範囲を指定するときは、全体をダブルクォーテーション記号で囲み、文字列で指定します。

【記述例 1】 2行目を選択します。
Rows(2).Select

【記述例 2】 4〜6行目を選択します。
Rows("4:6").Select

 次に、Rangeを使って行を指定する場合です。開始行番号終了行番号をコロン記号(:)で区切った書式で記述します。1行を選択するときは開始・終了ともに同じ番号を指定します。

図 5-1-6Rangeで行を指定する例
Rangeで行を指定するときは、開始行と終了行の両方を記述します。

【記述例 1】 2行目を選択します。
Range("2:2").Select

【記述例 2】 4〜6行目を選択します。
Range("4:6").Select
列を指定する場合
 今度は、列を指定する場合です。ColumnsまたはRangeを使って行います。

 まずは、Columnsで指定する場合です。1列を指定する方法と、列の範囲を指定する2種類の方法があります。1列を指定する場合は、Columns(列番号)のように列番号を数値で指定します。列の範囲を指定する場合は、Columns("開始列名:終了列名")のように、開始と終了の列をコロン記号(:)で区切った書式で記述します。

図 5-1-7Columnsで列を指定する
[書式1]
Columns(ColumnIndex).メソッドプロパティ
 Columnsの基本書式です。1列だけ指定します。

[書式2]
Columns("開始列名:終了列名").メソッドプロパティ
 列の範囲を指定するときの書式です。
列は、Excel 2003まではA〜IV(1〜255)、Excel 2007以降はA〜XFD(1〜16,384)が指定できます。

ColumnIndex(列番号/列名)
 列番号のときは整数値で、列名のときはAやBなどの列名を文字列で記述します。

開始列:終了列(列の範囲指定)
 開始列名と終了列名を、コロン記号で区切りそれぞれに記述します。範囲を指定するときは、全体をダブルクォーテーション記号で囲み、文字列で指定しなくてはなりません。

【記述例 1】 B列を選択します。どちらの例も、同じ操作を行います。
Columns(2).Select
Columns("B").Select

【記述例 2】 C〜F列を選択します。
Columns("C:F").Select

 次に、Rangeを使って列を指定する場合です。開始列名終了列名をコロン記号(:)で区切って指定すればOKです。しかし、ときには列を列番号で指定したいときはありませんか?もちろん可能です。列番号で複数の列を指定したいときは、RangeColumnsを組み合わせて使います。

図 5-1-8Rangeで行を指定する例
Rangeで列を指定するときは、開始列と終了列の両方を記述します。

【記述例 1】 B列を選択します。どちらの例も、同じ操作を行います。
Range("B:B").Select
Range(Coumns(2), Columns(2)).Select

【記述例 2】 D〜F列を選択します。どちらの例も、同じ操作を行います。
Range("D:F").Select
Range(Coumns(4), Columns(6)).Select
ワークブックやワークシートを指定してセルを…
 RangeCellsRowsColumnsには、ワークシートやワークブックを指定することもできます。なお、ワークシートやワークブックの指定については、「2.ワークブック、ワークシートの指定」の2.1 直接指定する方法または2.2 間接的に指定する方法をどうぞ。

図 5-1-9Range/Rows/Columnsにワークブックやワークシートを指定する
[代表書式 1]
Worksheetオブジェクト.Range(Cell).メソッドプロパティ
 ワークシートを指定したときの書式です。

[代表書式 2]
Workbookオブジェクト.Worksheetオブジェクト.Range(Cell).メソッドプロパティ
 ワークブックを指定したときの書式です。
書式は、どちらもRangeを使った代表例です。RowsやColumnsも使用できます。

Worksheetオブジェクト
 Worksheets、ActiveSheetなど、ワークシートを表すオブジェクトを使って指定します。

Workbookオブジェクト
 Workbooks、ThisWorkbook、ActiveWorkbookなど、ワークブックを表すオブジェクトを使って指定します。

【記述例 1】 Sheet1のB列を選択します。
Worksheets("Sheet1").Range("B:B").Select

【記述例 2】 ワークブックを指定した例です。Sheet1のD〜F列を選択します。
Workbooks("Sample.xlsx").Worksheets("Sheet1").Range("B:B").Select
ワークブックやワークシートを指定する場合と指定しない場合の違い
セルや行列を参照するときは、ワークブックやワークシートといった上位オブジェクトの記述を省略できます。ただし、マクロを作成した場所によって参照するシートやブックが異なることに注意してください。Sheetオブジェクトに作成すると作成したシートが上位オブジェクトとなり、Sheet以外のオブジェクトに作成すると最前面に表示されているブックやシートが上位オブジェクトとなります。

図 5-1-10マクロの作成先と参照するシートの法則
マクロの作成先と参照するシートの法則


Copyright(C) 1999-2015 結城圭介(Ver.3.51) All rights reserved