ExcelVBA入門第4回 RangeとCells
Excelを扱う上で非常に重要なのがセルの指定ですが、今までの記事では「Range」という記述を紹介してきました。でも、「Cells」とも書けるんです。どちらも最終的には同じ意味のことができますが、今回はその扱いの違いについて書いてみます。
セルの「値」を表す「.value」は省略されている
Range と Cells の違いに入る前に、注意しておきたいことがあります。ここまでは「セルに値を入れる」のに
Range("A1") = 1
という書き方をしていました。実はこのRange("A1")
の後には.Value
という記述が省略されています。この部分を「プロパティ(属性)」と呼び、
- Range(“A1”).Value → セルの値
- Range(“A1”).Font → セルのフォント
- Range(“A1”).Formula → セルの数式
このようにたくさんあるのですが、「省略された場合は.Value
とする」という決まりがあるのです。今回は、「値」であることを明確にするために、.Value
の記述も省略せずに書いてみましょう。
RangeとCellsの書き方の違い
指定するセルは同じになりますが、Rangeは文字列、Cellsは数値で表します。普通にExcelで使ってきた“A1”などの表記はRangeのほうです。こちらは理解し易いですよね。Cellsは、アルファベットを数値に置き換えて、更に列と行を入れ替えた表記になります。
列はExcelで言う、上部に横に並ぶアルファベットの方で、行は左部に縦に並ぶ数値のほうです。Rangeは列が先、Cellsは行が先に来ます。ちょっとややこしいですが、大事なところなのできちんと覚えておきましょう。
Range と Cells どう使い分けるの?
上の図の通り、Cellsを使うとプログラムの自由度がぐんと広がります。毎回同じセルに上書きするような内容ならRangeで構わないですが、履歴を残したいような場合は、プログラムを動かすたびに1行(または1列)ずらしながら書き込んでいきたいですよね。そういったことにCellsは最適です。
Range("A1").Value = 1 Range("A2").Value = 1 Range("A3").Value = 1 Range("A4").Value = 1 Range("A5").Value = 1
例えば、A1~A5セルまで1を入れる、という処理をRangeで書くとこのようになりますが、
For i = 1 To 5 'iを1から5まで繰り返す Cells(i, 1).Value = 1 'A□セルへ□を入れる←都度変わる Next i '+1してForへ戻る
Cellsだと変数が使えるので、繰り返し処理を使ってこのように書けるのです。
繰り返し処理についてはこちらで説明しています。
アルファベットって数値でいくつ?
A, B, Cくらいなら分かりますが、後半になってきたらもうわかりませんよね。そんなときはExcelの表示を変えることができます。
[ツール]→[オプション]の[全般]タブを開き、[R1C1参照形式を使用する]にチェックを入れます。
するとご覧の通り!アルファベットが数値になりますので、これを見ながらプログラムを組めば簡単です!ただ、このままにしておくとなんだか気持ち悪い感じを受ける人もいらっしゃいますので、先ほどと同じ所のチェックを外せば元通りアルファベットに戻りますので、必要な場合は戻しておいてください。
追記:A1/R1C1形式の簡単な切り替え
頻繁に切り替えるのが面倒だなってときにはこんな方法もあります。
ほかの入門記事はこちら
- ExcelVBA入門第0回 始める前に
- ExcelVBA入門第1回 動かしてみる
- ExcelVBA入門第2回 とりあえず覚えておくべきこと
- ExcelVBA入門第3回 変数の宣言
- ExcelVBA入門第4回 RangeとCells
- ExcelVBA入門第5回 ステップ実行
- ExcelVBA入門第6回 If ~ End Ifステートメント
- ExcelVBA入門第7回 インデントとコメントアウト
- ExcelVBA入門第8回 繰り返し処理
- ExcelVBA入門第9回 5種類のモジュールの違い
- ExcelVBA入門第10回 3種類のプロシージャと命名規則
- ExcelVBA入門第11回 スコープ(適用範囲)
- これからExcelのマクロを始めたいという方に!簡単な練習問題作りました。
- 私がExcelVBAでよく使う便利なコード・スニペットまとめ
- プログラム初心者さんへ贈る、エラーが起きたら試してみて欲しいこと
- ExcelVBAのクラスモジュールって何?という人向けの使い方まとめ
書籍を執筆しています。
コメントは承認制ですので、反映までしばらくお待ち下さい。(稀にスパムの誤判定にて届かないこともあるようですので、必要な際はお問い合わせからお願い致します。)
YouTubeでQ&Aコンテンツを企画しています
運営しているYouTubeチャンネルで、ご相談やご質問を募集しています。動画のコメントやお問い合わせページからお気軽にご相談をお寄せください。