みなさん、こんにちは。今回はExcelマクロVBA入門の4回目です。
前回はマクロVBAの基本となる以下の3つのうちオブジェクトとプロパティについて紹介しました。
学習用Excelファイルのダウンロードはこちらから↓
今回はメソッドについて、そして、Withステートメント、セルとセル範囲について紹介します。
- オブジェクト
- プロパティ
- メソッド
メソッドとは?
メソッドとは、オブジェクトに対して直接アクション(操作)を実行するものです。
さまざまな種類があり、引数を設定できるものもあります。
メソッドの書き方
オブジェクト.メソッド (オブジェクトを操作する時の書き方)
(例)セルのコピー、セルの削除
オブジェクト.メソッド 引数 (引数を使ってオブジェクトをする時の書き方)
(例)セルの削除 引数(左または上にずらす)
基本的にVBAでは、「.」(ピリオド)を~のと訳します。
セルのメソッド(例)
メソッド | 説明 | 使用例 |
Copy(コピー) | コピーする | Range(“A1”).Copy |
Delete(デリート) | 削除する | Range(“A1”).Delete |
Merge(マージ ) | 結合する | Range(“A1:B1”).Merge |
Select(セレクト) | 選択する | Range(“A1”).Select |
それでは、実際にレジュメを使って操作してみましょう。
Clear(メソッド)
レジュメ:「7-1.Clear」シート使用
セルの中身を削除
Clearメソッドを使ってセル範囲A3:D6を消去します。
Sub 演習_Clear()
Range("A3:D6").Clear
End Sub
Delete(メソッド)
レジュメ:「7-2.Delete」シート使用
セルの自体を削除
Deleteメソッドを使ってセル範囲F3:F4を削除します。引数をつかって、削除後、右または下のどちらのセルを移動するか指定できます。
Sub 演習_Delete()
Range("F3:F4").Delete xlShiftUp
End Sub
Withステートメント
レジュメ:「7-3.Withステートメント」シート使用
同じオブジェクトに対する指示をまとめて書くには、Withステートメントを使います。
Withのあとにオブジェクトを指定して、それ以降、指定したオブジェクトに対する操作を書くときには、オブジェクトの指定を省略して「.(ピリオド)」で区切って記述します。最後に「End With」と書きます。
Sub 演習_Withステートメント()
With Range("B25")
.Value = "練習"
.Font.Bold = True
.Interior.ColorIndex = 8
End With
End Sub
セルとセル範囲
ここで一旦、プロパティやメソッドを使っていくに当たって必要となるセルやセル範囲の書き方を紹介します。
セル番地で指定する
例 | 内容 |
Range(“A1”) | A1セル |
Range(“A1,C3”) | A1セルとC3セル |
Range(“A1:C3”) | A1セルからC3セル |
Range(“A1″,”C3”) | A1セルからC3セル |
Range(“A1:C3,E2:F3”) | A1セルからC3セルと、E2セルからF3セル |
行番号や列番号で指定する
例 | 内容 |
Cells(3,2) | B3セル |
Cells(3,”B”) | B3セル |
Cells | 全セル |
Range(Cells(3,2),Cells(4,5)) | B3~E4セル |
隣や上下のセルを指定する(Offset)
オブジェクト.Offset
Offsetプロパティを使用すると、指定したセルから何行、何列ずれたセルを指定できます。
例)オブジェクト.Offset(移動する行数、移動する列数)
例 | 内容 |
Range(“C5”).Offset(2,1) | C5セルの2行下1列右のセル |
Range(“C5”).Offset(-2,-1) | C5セルの2行上1列左のセル |
Range(“C5”).Offset(,3) | C5セルの3列右のセル |
Range(“C5”).Offset(2) | C5セルの2行下のセル |
表全体を指定する(CurrentRegion)
オブジェクト.CurrentRegion
CurrentRegionプロパティを使用すると、指定したセルを基準としたアクティブセル領域を指定できます。
例 | 内容 |
Range(“A3”).CurrentRegion | A3セルを基準にしたアクティブセル領域 |
CurrentRegionプロパティの関連記事はこちら
行や列を指定する
例 | 内容 |
Rows(5) | 5行目 |
Rows(“3:5”) | 3~5行目 |
Columns(3) | C列目 |
Columns(“C”) | C列目 |
Columns(“C:E”) | C~E列 |
Select(メソッド)
レジュメ:「7-5.Withステートメント」シート使用
上記のセルとセル範囲の書き方を踏まえて、Selectメソッドを実行してみましょう。
セルの選択
Selectメソッドを使ってセル範囲を選択します。
■演習1:表を全て範囲選択する。
Sub 演習1_Select()
Range("B9:G16").Select
End Sub
■演習2:タイトル行と最終行を範囲選択する。
Sub 演習2_select()
Range("B9:G9,B16:G16").Select
End Sub
■演習3:表を全て範囲選択する。
Sub 演習3_select()
Range("B9").CurrentRegion.Select
End Sub
■演習4:タイトル行から1行ずらして表を全て範囲選択する。
Sub 演習4_select()
Range("B9").CurrentRegion.Offset(1).Select
End Sub
Copy(メソッド)
レジュメ:「7-6.コピー」シート使用
コピー&ペースト
Copyメソッドを使ってセル範囲をコピーします。
貼り付け先(引数Destination:=)は左上角のセルを指定します。
演習:B15:D17をコピーして、F15に貼付けましょう。
Sub コピー()
Range("B15").CurrentRegion.Copy Destination:=Range("F15")
End Sub
まとめ
前回・今回とVBAの基本となるオブジェクトとプロパティそしてメソッドについて紹介しました。
また、さまざまなセルとセル範囲の書き方についても紹介しました。
次回は変数といよいよ自動化するための繰り返し処理について、紹介します。お楽しみに!!
コメント