【まだ知らないの?】任意の範囲からセルを取得する方法!変化に強い書き方も紹介!【Excel VBA】
こんにちは!『ルウちゃんのExcel Labo』管理人の@rouxchanblogです!
今回はこのような悩みについて解説します。
範囲の中から目的のセルを取得する方法を教えて!
- 範囲を指定する2つの方法
- 範囲の中からセルを取得する方法
- 変化に強いコードの書き方←実務で使える
サンプルコード紹介
まずはサンプルコードで、範囲の中からセルを取得する方法を見ていきましょう!
Range("B2:E5").Cells(2, 3).Select
このように指定した範囲(B2:E5)の中から2行目、3列目を選択することができました。
次に範囲指定の具体的な方法を見ていきましょう!
範囲を指定する2つの方法
範囲を指定するには「Rangeオブジェクト」を使います。
Range("左上のセル:右下のセル")
左上のセルと右下のセルを「 : 」コロンで範囲を指定できます。
「cellsプロパティ」で指定する場合はこのような記述になります。
Range(cells(行,列),cells(行,列))
少し複雑ですが、左上のセルと右下のセルを「 , 」カンマで繋ぐことで範囲を指定できます。
この2つは記述方法に違いがあるので注意しましょう!
目的のセルを取得する
次は目的のセルを取得する方法です!
範囲指定したあとに「cellsプロパティ」で目的のセルを指定することで取得することができます。
Range("左上のセル:右下のセル").cells(行,列)
これを「Rangeプロパティ」で指定するとおもしろいことが起きます。
Range("B2:E5").Range("A2").Select
このように「A2セル」を選択しているのに、実行画面では「B3セル」が選択されました。
この結果からわかるように、指定された範囲をシートと認識して、セル番地を取得しているようです。
変化に強いコードの書き方
次に応用的な使い方を見ていきましょう!
Range("B2").CurrentRegion.Cells(2, 3).Select
このように「CurrentRegionプロパティ」を使っても同じように目的のセルを取得できます。
「CurrentRegionプロパティ」を使えば、行が増えていく場面でも変化に対応することができます!
実務ではこのように変化に強いコードが求められるのでどんどん使っていきましょう!
↓「CurrentRegionプロパティ」がよく分からないという方はこちら↓
まとめ
今回は「任意の範囲からセルを取得する方法」を解説しました。
一覧から特定のセルの値を取得する時に使える便利なテクニックなのでぜひ使ってみてください!
この記事で少しでも皆さんのお役に立てれば幸いです!
忘れないうちにお気に入り登録もお願いします!
ありがとうございました!
コメントはお気軽に!