0こんにちは、吉池(@valmore_myoshi)です。ひとつ前の記事ではセル範囲の指定方法としてRangeを取り上げましたが、今回はCellsを解説します。CellsもVBAで頻繁に使うオブジェクトなので、一度理解してしまえばさまざまな自動化に適用できます。本記事では、Cellsの基本的な使い方はもちろん、Rangeとの違いについてもみていきましょう。すべて理解できるようになればCellsを使ったセル操作を自由に行えるようになります。まとめCellsとはCellsとはセルを指定する方法のひとつです。行番号(行インデックス)と列番号(列インデックス)を指定して使います。1).SelectCellsとRangeの違い、使い分けセル範囲を指定する方法にはほかにもRangeがあります。Cellsがインデックスを指定するのに対し、Rangeは以下のように文字列でセル範囲を指定します。A1からC3までの範囲を指定Range("A1:C3")セルの指定方法からわかる通り、Cellsでは1つのセルしか明示的に指定できません。Rangeは複数のセル範囲を指定できます。これだけではRangeのほうが使い勝手がよさそうですが、Cellsにも得意分野があります。それがインデックスの指定に変数を使えることです。A列のセルに一つずつ違う値を入れるケースを考えてみましょう。「みかん」「りんご」「バナナ」と入れる場合、Rangeだと下記のように一つずつ指定する必要があります。Cellsでは変数を使ってより簡潔に書けます。foods(i)Next上記のように変数iをインデックスに使うことで、Forループなどと組み合わせてセル範囲を指定できるのがCellsの強みです。CellsとRangeの使い分け方をまとめると以下のようになります。指定する範囲が固定の場合はRange、変動する場合はCells指定するセルが1つの場合はCells、2つ以上であればRange行ごと、列ごとに範囲指定する場合はCellsRangeについて詳しく知りたい方はこちらの記事をご覧ください。VBA入門】Rangeでセル範囲を指定、操作する方法Cellsを使った範囲指定の方法これまでにいくつか見てきましたが、Cellsの指定方法はいくつかあります。用途にあった指定方法を選びましょう。インデックスで指定するまずは基本のインデックスで指定する方法です。行インデックスと列インデックスを入れると一つのセルを指定できます。インデックスを指定しないと、シート全体を指定します。シート全体を選択Cells.Select変数を使って指定する変数を使ったセル範囲の指定はCellsならでは。基本的にループ処理と組み合わせて使うことで簡潔に記述できます。部署と名前を組み合わせた下記のような表を考えてみます。名前]のように部署と名前が入った配列を3つ持つ二次元配列で考えると、変数を使って下記のように書けます。NextNextOffsetを使った相対位置の指定Offsetを使えば相対位置を指定できます。指定した位置と相対的に離れているセルも取得したいといったときに便利です。3).Select実行結果Rangeで指定した範囲内の指定RangeとCellsを組み合わせてセル範囲を指定することも可能です。通常Cellsは1行目を行インデックスで1、A列を列インデックスで1と表しています。Rangeで先にセル範囲を指定すると、その範囲内の左上のセルがインデックスの起点となります。1)を指定すると、B2のセルが指定されます。1).Select実行結果Cellsで指定した範囲の操作Cellsで範囲指定したあとは、なんらかの操作をするはずです。本記事では、選択や入力など基本的なセル操作を見ていきます。範囲を選択するセルを選択するにはSelectメソッドを使います。1).Select範囲に入力するセルに値を入力するにはValueプロパティに代入します。10範囲をコピーするセルをコピーするにはCopyメソッドを使います。Copy先のセル範囲を指定することでペーストできます。3)範囲をクリアするセルをクリアするにはClearメソッドを使います。1).ClearまとめCellsを使ったセル範囲の指定、操作方法を解説しました。VBAでExcel操作を自動化するときにCellsを使わないことをほぼありません。頻繁に使うオブジェクトだからこそ、きちんと理解しましょう。使えるようになってしまえばより効率的に自動化プログラムを作れるようになります。VBA入門】ユーザー定義関数の作り方。VBA入門】ドロップダウンリストの作り方。Reserved.RPA・業務自動化とは?サービス料金ブログお問い合わせチーム事業概要プライバシーポリシーヒアリングシートAnyDeskダウンロード。