10日で習得!VBA入門④-メソッド、With構文-

VBA入門
スポンサーリンク

みなさん、こんにちは。今回はExcelマクロVBA入門の4回目です。

前回はマクロVBAの基本となる以下の3つのうちオブジェクトプロパティについて紹介しました。

10日で習得!VBA入門③-オブジェクト、プロパティ-
VBAの基本なるオブジェクトとプロパティについて演習問題付きに紹介しています。 記事を読み進めていくことで、マクロVBAを使って同一シート内のデータ処理を自動化するために必要なVBAスキルを習得できます。VBA初学者が添付のレジュメを使って一緒に手を動かしながらVBAコードを記述していくことで、自分のペースでじっくり確実に習得することができます。

学習用Excelファイルのダウンロードはこちらから↓

マクロVBA入門講座|ワイエム
「ブログ記事とオリジナルレジュメを使ってマクロVBAの基礎を学ぼう!!」ということで、ブログにてVBA基礎の習得を目指した記事をアップしていきます。最終目標は”私がVBA習得のきっかけとなった”YouTubeチャンネル:Mr.ラビットのにょきにょきパソコン講座にて題材となってパズルを作成することです!!YouTubeを...

今回はメソッドについて、そして、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”).CurrentRegionA3セルを基準にしたアクティブセル領域

CurrentRegionプロパティの関連記事はこちら

VBAにおけるCurrentRegionの活用
VBAのCurrentRegionについて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の基本となるオブジェクトとプロパティそしてメソッドについて紹介しました。

また、さまざまなセルとセル範囲の書き方についても紹介しました。

次回は変数といよいよ自動化するための繰り返し処理について、紹介します。お楽しみに!!

コメント

タイトルとURLをコピーしました