前回までの説明で、VBAでマクロを作成し、実行することができるようになりました。今回からは、VBAのプログラムの書き方を勉強して行きたいと思います。前回の例題に出てきたものに、Cellsプロパティがありました。Excelのセルの内容を読み込んだり、セルにデータを設定したりできるものです。表を操作していろいろな作業をするのは、Excel(表計算プログラム)の得意とするところです。今回はExcel表におけるデータの操作に焦点を当てていきたいと思います。
ゼロからはじめるVBA - 基本編
ゼロからはじめるVBA - VBA事始め編
特定のセル範囲を指定する
前回、セルを指定するための命令として、Cellsプロパティを紹介しました。セルを操作するために、まずは操作対象のセルを選択しておく必要があります。他に特定の範囲を指定するためのプロパティとしては、Rangeプロパティ、Rowsプロパティ、Columnsプロパティがあります。
また、セルの指定は現在アクティブになっているシートに対して行われます。他のシートのセルを扱うときは、Worksheets、Sheetsプロパティで扱いたいシートをアクティブにしてからセルを指定する必要があります。
以下では、これらのプロパティについて説明していきます。
シートを選択する方法
シートを設定する方法を説明します
[リスト1]シートの設定方法
Sheets("Sheet1").Select '(1)
Worksheets("Sheet1").Activate '(2)
(1)(2)どちらもSheet1をアクティブにする指定です。どちらを使用してもかまいません。具体的にセルを指定する前に書きます。次に、セルの指定を説明します。
以下説明するリストはsample.lzhの中に「セル操作編例題.xlsm」「素材別カロリー表.xlsm」「他のBook.xlsx」として収録しています。サンプルとしてご活用ください。
Rangeプロパティ
セルを指定するプロパティです。
(1)1つのセルを指定
以下は、2行C列を指定します。
[リスト2]range_01サブルーチン(セル操作編例題.xlsm)
Sub range_01()
Sheets("Sheet1").Select
Range("C2").Select
End Sub
図1:一つのセルを指定 |
(2)複数のセルを指定
以下は、1行A列と3行C列を指定します。
[リスト3]range_02サブルーチン(セル操作編例題.xlsm)
Sub range_02()
Sheets("Sheet1").Select
Range("A1,C3").Select
End Sub
図2:複数のセルを指定 |
(3)ある範囲を指定
以下は、1行A列から3行C列を範囲指定します。
[リスト4]range_03サブルーチン(セル操作編例題.xlsm)
Sub range_03()
Sheets("Sheet1").Select
Range("A1:C3").Select
End Sub
図3:セルの範囲を指定 |
Cellsプロパティ
セルを指定するプロパティです。
(1)一つのセルを指定
以下は2行C列を指定します。結果は、図1と同じです
[リスト5]Cells_01サブルーチン(セル操作編例題.xlsm)
Sub cells_01()
Sheets("Sheet1").Select
Cells(2, 3).Select
End Sub
(2)ある範囲を指定
以下は1行A列から3行C列を範囲指定します。Cellsプロパティはあくまでひとつのセルの指定するものですので、範囲指定したい場合はRangeプロパティと併用します。結果は、図3と同じです。
[リスト6]Cells_02サブルーチン(セル操作編例題.xlsm)
Sub cells_02()
Sheets("Sheet1").Select
Range(Cells(1, 1), Cells(3, 3)).Select
End Sub