はじめに
Excelの最小入力単位はセル(Cell)ということになります。そういう意味ではおなじみのセルですが、VBAマクロから操作するときは何パターンかの関数・プロパティがあるので使用法に注意する必要があります。後で後悔しないように、やりたい処理の目的に応じた正しい手段でセルを扱うように注意しましょう。
Excelのセルを操作する方法を紹介する本記事の目的
Excelでセルを操作する処理には大きく分けて2つの方法があります。
1つ目はCellsプロパティを使う方法で、これはダイレクトに参照するセルを指定することができます。
もう一つがRangeオブジェクトで、この方法は文字通りレンジ(範囲)を指定する方法です。この範囲にcellの行と列を指定することで特定のセルを参照する方法です。
本記事ではこのCellsプロパティとRangeオブジェクトの使い方を検討しながらご説明していきたいと思います。
Excelのセルの操作を実行する処理の流れ
Cellsプロパティを用いる場合、端的にセルの列と行を指定することで参照することができます。このとき、行方向列方向ともに実数で指定することができます。
つまり、Excelでは行方向には1.2.3…と実数で行数が増えていきますが、列方向はA.B.C…とアルファベット順となるところを数字で指定することができるということです。
このことから、例えば九九の計算など列方向、行方向に加算されていく処理のアルゴリズムを考えたとき、Rangeオブジェクトによる指定よりCellsプロパティを使ったほうが処理をさせやすいということが言えます。
逆にRangeオブジェクトはわかりやすく「何列何行目」が見たまま指定できるので使いやすいと言えます。また、本来的に例えばAverageやSumなどの関数の引数としての範囲指定のために使うオブジェクトなので、セル間の複雑な処理を行うには向いてないとも言えるかもしれません。
今回は九九をVBAマクロで実行したサンプルもご覧頂きたいと思います。こういった加算的な処理はCellsプロパティを用いたほうが良いでしょう。
Excelのセルの操作を実行するのに使用する関数・プロパティなど
Excelのセルを操作するサンプルコード
Sub CellsControl() name = Range("B3") MsgBox name & "様ご注文ありがとうございます!(Rangeによる指定)" name = Cells(2, 3) MsgBox name & "様ご注文ありがとうございます!(Cellsによる指定)" End Sub
CellsControl実行結果
Sub KUKU() For i = 1 To 9 For j = 1 To 9 Cells(i, j) = i & " * " & j & "=" & i * j Next j Next i End Sub
KUKU実行結果
終わりに
今回はExcelのセルをVBAマクロで操作する方法をご紹介しました。
Excelではすべての処理の基礎になる単位がセルなので、使い方をよくご理解いただいておくとVBAマクロを使う上でとても役に立つと思います。