5.1 セルや行列を扱うための基本
値を入れたり罫線を引いたり背景色を変えたりコピーしたり貼付けたりなど、セルや行列を扱うときの基本です。セルを扱う場合は
Range
または
Cells
を使い、列を扱う場合は
Range
または
Columns
、行を扱う場合は
Range
または
Rows
を使います。
1つのセルを指定する場合
1つのセルを指定する場合です。
Range
を使う場合と
Cells
を使う場合の2種類あります。
Cells
で指定する場合は、
行番号
と
列番号
を数値で指定します。
Range
で指定する場合は、
A1
や
C5
などのセル名を指定します。
どちらの場合も、メソッド/プロパティには、コピー・貼り付け・書式の変更や設定など、セルに対して行う操作の内容を記述します。
図 5-1-1
Cellsでセルを指定する
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-2
Rangeでセルを指定する
Range
(
Cell
).
メソッド
/
プロパティ
Rangeオブジェクトの基本書式です。
・
Cell
(セル名)
A1やC5のようなセルの名前や、A1:C5のようなセルの範囲を文字列で記述します。
【記述例】 C5セルをRangeで選択します。
Range
("C5").Select
セルの範囲を指定する場合
次に、範囲を指定する場合です。範囲を指定する場合、基本的には
Range
を使います。
まずは、
セル名で範囲を指定
する場合です。セル名で範囲を指定する場合は
A1:C6
や
B2: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オブジェクトの基本書式です。
・
Cell1
と
Cell2
(開始地点と終了地点)
表の開始地点と終了地点のセルを、Cellsで記述します。
参考までに、開始と終了のセルを同じにすると、1つのセルを指定したことになります。
【記述例】 A1〜C6セルの範囲をCellsで指定します。
Range
(Cells(1, 1), Cells(6, 3)).Select
行を指定する場合
今度は、行を指定する場合です。
Rows
または
Range
を使います。
まずは、
Rows
で指定する場合です。1行を指定する方法と、行の範囲を指定する方法の2種類あります。まずは1行を指定する方法ですが、
Rows(行番号)
のように
行番号を数値
で指定します。また、行の範囲を指定する場合は
Rows("開始行番号:終了行番号")
のように
開始と終了の行番号を:で区切り数値で指定
します。
図 5-1-5
Rowsで行を指定する
[書式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-6
Rangeで行を指定する例
【記述例 1】 2行目を選択します。
Range
("2:2").Select
【記述例 2】 4〜6行目を選択します。
Range
("4:6").Select
列を指定する場合
今度は、列を指定する場合です。
Columns
または
Range
を使って行います。
まずは、
Columns
で指定する場合です。1列を指定する方法と、列の範囲を指定する2種類の方法があります。1列を指定する場合は、
Columns(列番号)
のように
列番号を数値
で指定します。列の範囲を指定する場合は、
Columns("開始列名:終了列名")
のように、開始と終了の列をコロン記号(:)で区切った書式で記述します。
図 5-1-7
Columnsで列を指定する
[書式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です。しかし、ときには列を
列番号
で指定したいときはありませんか?もちろん可能です。列番号で複数の列を指定したいときは、
Range
と
Columns
を組み合わせて使います。
図 5-1-8
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
ワークブックやワークシートを指定してセルを…
Range
や
Cells
や
Rows
や
Columns
には、ワークシートやワークブックを指定することもできます。なお、ワークシートやワークブックの指定については、「2.ワークブック、ワークシートの指定」の
2.1 直接指定する方法
または
2.2 間接的に指定する方法
をどうぞ。
図 5-1-9
Range/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
マクロの作成先と参照するシートの法則
エクセルマクロTips
セル・行・列操作編
■セルや行・列の操作
セルや行列を扱うための基本
・Range、Cells、セル1コと範囲指定
・行・列を扱うための基本も
セルを選択する・アクティブセルを移動する
・Range.SelectメソッドとRange.Activateメソッド
セルへ文字列、数値、数式を書込む1
・書込む位置が固定の例
セルへ文字列、数値、数式を書込む2
・書込む位置が可変の例
・Offsetプロパティ
セルのコピーと貼り付け
・書式だけコピペや、値だけコピペも
セルの切り取りと貼り付け
セルの高速コピー(切取り)貼付け
・Destination:=での高速コピペ
・もちろん切取り、貼付けでも可能!
行や列のコピーと貼り付け
・Destination:=での高速コピペも可能
行や列の切取りと貼り付け
新しい行や列の挿入
・Application.CutCopyMode
コピーした行や列の挿入
切り取った行や列の挿入
行や列の削除
ワークシート間でのコピーと貼付け
・切取り→貼付け、挿入も同じ要領で!
ワークブック間でのコピーと貼付け
・切取り→貼付け、挿入も同じ要領で!
表やデータの範囲を自動的に取得する
・UsedRangeプロパティ
セルや選択範囲から行や列全体を取得する
・EntireRowとEntireColumnプロパティ
データの先頭や終端を調べる
・Endプロパティ
書式を適用したセルの値を取得する
・Textプロパティ
セルの周囲にある表やデータの範囲を取得する
・CurrentRegionプロパティ
指定した分だけずらした位置のセルを参照する
・Offsetプロパティ
現在選択している部分を参照する
・Application.Selectionプロパティ
行の高さ、列の幅を変更する
・RowHeightプロパティとColumnWidthプロパティ
・行や列の単位について
5.L1 セルを検索する
[L]
※[L]の項目は、他のカテゴリの項目です。
■セルや文字の装飾と書式設定
罫線を付ける
セルに背景色を付ける
文字の装飾に関する書式設定
・大きさ、フォント、斜体、他
文字の配置に関する書式設定
・右寄せ、センタリングなど
・段落(インデント)を付ける
文字の表示形式に関する書式設定
・日付、時刻、数値の書式サンプル
行の高さ、列の幅の自動設定
テーマカラーでセルの背景色を設定する
・ThemeColorとTintAndShadeプロパティ
セルに網かけを付ける
・Interior.Patternプロパティ
テーマカラーでセルの網かけの色を設定する
・PatternThemeColorとPatternTintAndShade
■ブック・シート操作編
■セル・行・列操作編
■セル検索編
■Applicationオブジェクト・イベント編
■オートシェイプ操作編
■グラフ操作編
■応用技・その他編
■サイト内を検索
Happy! Happy! Islandその他のコンテンツ
■
VBAプログラミング系
Access VBAのTipsとサンプル
Excel VBA(エクセルマクロ)のTipsとサンプル
VBScript/JScriptのTipsとサンプル
プログラミング基礎・入門
■
入門と使い方
Access入門と使い方講座97~2003/2007/2010/2013
Access VBAプログラミング入門 2013/2010/2007/2003
Excel入門と使い方講座2013/2010/2007
■
ダウンロードコーナー
AccessとExcelのフリーソフト
■
その他
質問受け付けコーナー「管理人に聞いてみよう♪」
BBS過去ログ広場
HTMLの書き方
管理人プロフィール
┗
twitter(外部サイト)
管理人へメール
■
別館(海外向けサイト)
Excel Games and Access Games
VBAプログラミング&Tips集の
"Happy! Happy! Island"トップページへ
[PR]管理人が心を込めて書いた本
■
最速攻略 AccessVBAサンプル大全集
Access 2013/2010/2007対応版
■
速効!ビジネスPC Accessマクロ&VBA
Access2013/2010/2007対応
■
最速攻略Accessクエリ テクニック大全集
Access2013/2010/2007対応
■
AccessVBAマクロ超入門講座 Access2010/2007対応
■
ExcelVBA超入門講座 Excel2010/2007対応
■
ExcelVBAでできる RPGゲーム作成入門
■
[改訂新版]実践COBOLプログラミング入門
■
最速攻略 VBScriptサンプル大全集
Windows7/Vista/XP/2000対応
(
アマゾン
へジャンプします)
[PR]注目の情報
転職成功の秘訣はサイトに公開されない求人にあった
採用人数が少ない・専門性が高い・競合他社に知られたくないなど、魅力的な求人情報ほど一般には公開できないのです。
株デビューするなら SBI証券!
業界屈指の格安手数料と業界最高水準のサービスで口座数はネット証券 No.1!口座開設料・管理料は無料。
GDOゴルフショップ
ゴルフ用品のオンラインメガストア。品揃え10万点!
アスタリフトコラーゲンドリンク
毎日続けるものだから・・まとめ買いで最大10%OFF!集中コラーゲンケアで、ハリと潤いの溢れる毎日へ。
[リンク]IT関連情報サイトなど
gihyo.jp
技術評論社提供のIT関連コンテンツサイト
Copyright(C) 1999-2015
結城圭介
(Ver.3.51) All rights reserved