今回はセル範囲を指定するCellsプロパティの使い方を紹介します。Rangeプロパティとはセルの指定方法が違い、行番号と列番号の数字で指定します。実際にコードを作って動かしてみましょう。
エクセルVBA-セル範囲の指定(Cells)
セルの選択
単一セルを選択する
サンプルコード
Sub CellsTest1()
Cells(3, 4).Select
End Sub
Cells(3, 4)はセルD3のこと。Cells(行番号,列番号)で指定するのが基本です。実行すると下の図のような選択になります。
連続する複数セルを選択する
Cellsプロパティは単一セルかシート全体セルしか指定ができないので、Cells単体では複数セルの選択はできません。ここではRangeプロパティとの併用で指定する方法を紹介します。
サンプルコード
Sub CellsTest2()
Range(Cells(1, 1), Cells(3, 4)).Select
End Sub
Range(Cells(1, 1), Cells(3, 4))はセルA1からセルD3のこと。実行すると下の図のような選択になります。
連続しない複数セル選択
こちらもCellsだけではできません。離れた複数セルを選択する場合は、Unionというメソッドを使います。イメージとしてはキーボードのCtrlを押しながらクリックしてセルを選択する操作に近いです。
サンプルコード
Sub CellsTest3()
Union(Cells(1, 1), Cells(3, 4)).Select
End Sub
Union(Cells(1, 1), Cells(3, 4))はセルA1とD3のこと。実行すると下の図のような選択になります。
列全体の選択
1列全体の選択
列全体を選択する場合は、EntireColumnプロパティを使います。EntireColumnプロパティは指定したセルがある列全体を指定します。
サンプルコード
Sub CellsTest4()
Cells(1, 1).EntireColumn.Select
End Sub
Cells(1, 1).EntireColumnは列A全体のこと。実行すると下の図のような選択になります。
連続する複数列全体の選択
連続する複数セル選択で使用したRangeと、列全体の選択で使用したEntireColumnの合わせ技になります。
サンプルコード
Sub CellsTest5()
Range(Cells(1, 1), Cells(1, 3)).EntireColumn.Select
End Sub
Range(Cells(1, 1), Cells(1, 3)).EntireColumnは列Aから列Cまで全体のこと。実行すると下の図のような選択になります。
連続しない複数列全体の選択
今度は連続しない複数セル選択で使用したUnionと、列全体の選択で使用したEntireColumnの合わせ技になります。
サンプルコード
Sub CellsTest6()
Union(Cells(1, 1), Cells(1, 3)).EntireColumn.Select
End Sub
Union(Cells(1, 1), Cells(1, 3)).EntireColumnは列Aと列Cの全体のこと。実行すると下の図のような選択になります。
行全体の選択
1行全体の選択
行全体を選択する場合は、EntireRowプロパティを使います。EntireRowプロパティは指定したセルがある行全体を指定します。
サンプルコード
Sub CellsTest7()
Cells(1, 1).EntireRow.Select
End Sub
Cells(1, 1).EntireRowは行1全体のこと。実行すると下の図のような選択になります。
連続する複数行全体の選択
連続する複数セル選択で使用したRangeと、行全体の選択で使用したEntireRowの合わせ技になります。
サンプルコード
Sub CellsTest8()
Range(Cells(1, 1), Cells(5, 1)).EntireRow.Select
End Sub
Range(Cells(1, 1), Cells(5, 1)).EntireRowは行1から行5まで全体のこと。実行すると下の図のような選択になります。
連続しない複数行全体の選択
連続しない複数セル選択で使用したUnionと、行全体の選択で使用したEntireRowの合わせ技になります。
サンプルコード
Sub CellsTest9()
Union(Cells(1, 1), Cells(3, 1), Cells(5, 1)).EntireRow.Select
End Sub
Union(Cells(1, 1), Cells(3, 1), Cells(5, 1)).EntireRowは行1と行3と行5の全体のこと。実行すると下の図のような選択になります。
シート全体の選択
サンプルコード
Sub CellsTest10()
Cells.Select
End Sub
Cellsは選択しているシート全体のこと。実行すると下の図のような選択になります。
変数を使ったセル指定
Cellsを使う一番のメリットは変数が使ってセルの指定ができる点です。ここでは簡単な対話型プログラムを作ってセルの選択をしてみましょう。
サンプルコード
Sub CellsTest11()
Dim R As Integer '選択したいセルの行番号格納
Dim C As Integer '選択したいセルの列番号格納
R = InputBox("選択したいセルの行番号を入力してください。")
C = InputBox("選択したいセルの列番号を入力してください。")
Cells(R, C).Select
End Sub
実行すると入力を求めてきます。これがInputBoxの動作でそこで入力した値をRという変数と、Cという変数に格納します。ここでの詳細は省きますが、変数とは値を格納する箱のようなものだと思ってください。箱に入れている値を好きな時に使うことができます。今回は行番号に【5】、列番号に【4】を入力しましたので、セルD5が選択されました。何度でも実行できるので動かして変化を実感してください。
まとめ
Cellsでのセル指定方法について説明しました。状況によってRangeとの使い分けが必要となりますが、変数を使用してセルを指定するのであればCellsを使うことになり、固定されたセルを指定する時はRangeを使います。実際にプログラムを作る上で変数は絶対に使用しますので、Cellsも重要な要素となります。しっかりマスターしてください。
新着記事
-
-
Excel-名前を姓と名に分ける【フラッシュフィル】の使い方
名簿などを作っている時に、名前を姓と名に分けて入力するか、スペースを空けて一つのセルに入力するか迷う時があります。後々後悔することもしばしばありますが、そんな時に便利なのがフラッシュフィルです。一つの ...
-
-
Excel-フィルター機能の使い方
エクセルのフィルター機能は膨大な量のデータベースから必要な条件に該当するデータだけを抽出する機能です。何万行というデータの中から「この条件に合うデータだけ抽出したい」という時に、目で見て抽出していたら ...
-
-
Excel-入力規則の使い方
入力規則とはあらかじめセルに入力できる値を制限しておく機能です。入力する項目が限られている時はリスト化してマウスで選択するだけで入力することができます。また第三者に発注書などの資料を渡して入力してもら ...
-
-
Excel ショートカット一覧【便利技収録】
基本的なコピー&貼り付けから、セルの移動・選択などマウス操作では時間がかかる操作も、ショートカットを使えば一瞬で操作が完了します。ここでは比較的よく使用するショートカットを紹介しますので、ぜひ覚えて活 ...
-
-
Excel【INDEX】【MATCH】の使い方
INDEXは検索関数の一つで、VLOOKUPよりは知名度は低い関数ですが、柔軟な検索が可能となっており、VLOOKUPではできない検索も可能となります。INDEX単体で使ってもあまり意味がなく、MAT ...