Excelで「VBA」プログラミングの基礎(「Cells」「Range」編)

VBAの基礎

どうも!Komugiです

「Cells」「Range」を指定する考え方は、

VBAのプログラミングを行う際には必要不可欠です。

ご自分のスキルにしていただいて、転職が成功出来ますように!

「Cells」「Range」について学習しよう!

がんばるぞ〜!

「Cells」「Range」とは

「Cells」や「Range」の使い方について覚えておきましょう!

「Cells」「Range」はそれぞれ違った場面で役立ちます。
行番号列番号の数字を使うなら「Cells」、特定の範囲を使いたいなら「Range」、というイメージで使い分けるとわかりやすいです。
VBAでセルを選択する2つの使い分けは以下のようになります。

行番号
 行数のことで、上から1、2、3、・・・となりこれを行番号と呼びます。
列番号
 Excelシート上の列を数値で表現したものです。
 Excelでは通常、列はアルファベットの文字(A, B, C,…)で表現されますが、
 VBAでは数値で指定することができ、これを列番号と呼びます。

Cells」の場合

  • 1つのセルを指定する場合。
  • シート全体を指定する場合。
  • 条件によってセルの位置を変更したい場合(例えば、変数でセルの位置を指定する必要があるとき)。

Range」の場合

  • 複数の連続したセルをまとめて対象にしたい場合。
  • セルの範囲を使用する場合。
  • 定義済みの名前があるセル範囲を使用する場合。

Cells」の場合

「Cells」の指定の方法は以下のように指定します
 Cells(行番号, 列番号)
行番号とは行数のことで、列番号はA列は1、B列は2のことです。
余談ですが・・・この行と列が覚えられなくていつも反対指定してました(笑)

1つのセルを指定

B5セルを選択するサンプルコードです。

Sub sample1_c()
    Cells(5, 2).Select
End Sub

実行結果

シート全体を選択する

シートの全部のセルを選択するサンプルコードです。

Sub sample2_c()
     Cells.Select
End Sub

実行結果

変数を使用

「メイン」シートのC11セルに2025/3/6と記載があります。
このセルの値を「家計簿」シートに転記ます。

家計簿シートの最終行+1行目の行番号を変数(nextRow)に格納し、「Cells」で指定した箇所にデータを転記するコードです。

Sub AddDataToHouseholdAccount()

    Dim wsMain As Worksheet
    Dim wsHousehold As Worksheet
    Dim nextRow As Long
    
    ' シートの設定
    Set wsMain = ThisWorkbook.Sheets("メイン")
    Set wsHousehold = ThisWorkbook.Sheets("家計簿")
    
    ' 家計簿シートの次の空行を取得
    nextRow = wsHousehold.Cells(wsHousehold.Rows.Count, 1).End(xlUp).Row + 1
    
    ' メインシートからデータを取得し家計簿シートに転記
     wsHousehold.Cells(nextRow, 1).Value = wsMain.Cells(11, 3).Value

End Sub

実行結果

「Range」の場合

Rangeの指定の方法は以下のように指定します。
 Range(“セル”)
 Range(“始点セル:終点セル”)

CellsとRangeを組み合わせて範囲を指定する場合は以下のように指定します。
 Range(Cells(行番号, 列番号),Cells(行番号, 列番号))
※汎用的に利用できるので、こちらの方法を使う場合が多いです!

セルの範囲に名前を定義した場合は以下のように指定します。
 Range(“定義した名前”)

単一セルを選択

B5セルを選択するサンプルコードです。

Sub sample1_r()
    Range("B5").Select
End Sub

複数のセルを範囲指定

A1セルからE10せるの範囲をを選択するサンプルコードです。

Sub sample2_r()
    Range("A1:E10").Select
End Sub

実行結果

CellsとRangeを組み合わせて範囲を選択

範囲指定したセルに「8」を設定します。

Sub sample3_r()
    Range(Cells(1.1), Cells(10, 5)).Value = 8
End Sub

実行結果

定義した名前でセルの範囲を指定

セルの範囲に名前を定義した場合、Rangeでその名前を指定し、範囲を選択することができます。

今回はA2セルからE6セルを選択した範囲を、Excelの数式タブ>名前の定義>「name」と定義します。

Sub sample4_r()
    Range("name").Select
End Sub

実行結果

言葉から逆に辞書のように確認できるので、とても便利な本です!
一冊持っていると、ずっと使えます。

Excel VBA逆引き辞典パーフェクト第3版 [ 田中亨 ]

Excel VBA逆引き大全 600の極意 Microsoft365/Office2024/2021/2019/2016対応 [ E-Trainer.jp[中村峻] ]

「Cells」「Range」編まとめ

「Cells」「Range」への理解は進みましたでしょうか。
変数を利用してセルを操作するときはCellsを、複数のセルを利用したい場合はRangeを使います。
VBAを使用してExcelでプログラムを組む際、とても重要な概念の一つが「Cells」や「Range」の活用です。
Excelシート上のセルや範囲を指定するための、基本的な概念であり、データの操作やExcelの自動化を実現するには「Cells」「Range」の理解が不可欠です。
頑張って勉強していきましょう!

最後まで見ていただき有難うございます。引き続きプログラミングの素晴らしさをお伝えさせていただきます!

コメント

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