VBA講座04 セルの値で足し算します
(Range オブジェクトの取得)

 今回はワークシートと連携したプログラムを書いてみましょう。
 オブジェクトプロパティという概念に軽く触れますけど、今の段階では細かいことは気にせずに、大体の感覚を掴んでください。

シートを用意します

 最初に次のようなシートを用意してください。

 エクセル足し算マクロシート

 セル C2 と C4 には何か数値を予め入力しておきます。この2つの値を足し算してセル C6 に出力する、というマクロを作るのが今回の目的です。
 

セルの値で足し算するマクロ

 今回は次のようなマクロを書いてみます。

 Sub 足し算5()
  Dim x As Double, a As Double, b As Double
  
  a = Range("C2").Value
  b = Range("C4").Value

  x = a + b

  Range("C6").Value = x

 End Sub

 変数宣言は前回までと同じです。
 マクロを実行するとセルC2 に計算結果が表示されるはすえす。
 

オブジェクトという概念

 まず VBA の根幹となる オブジェクトプロパティ について簡単に説明しておきます。英語の object は「物体」という意味です。現実世界の車がエンジンやタイヤ、ボディーなどで構成されているように、オブジェクトはエクセルを構成するパーツです。ブックやシート、セルなどがオブジェクトであり、それをエクセルの部品に見立てて VBA で制御する、という感覚です。

 そして プロパティ とは、オブジェクトのもつ特質です。車でたとえるなら、エンジンの材質やモーターなど、部品のさらに細かいところに相当します。 VBA ではオブジェクトに対してプロパティではたらきかける、という記述が頻繁に登場します。
 

Range プロパティで Range オブジェクトを取得します

 マクロの3行目に

a = Range("C2").Value

という記述がありますね。この Range が今回初めて登場する Rangeプロパティ というものです。 Rangeプロパティ は(記述上では省略されている)Worksheet オブジェクトの構成要素の1つである Rangeオブジェクト を取得しています。

 Rangeオブジェクト はセル範囲のことです。上の記述ではまず Range("C2") という記述でワークシートからセルC2 という Rangeオブジェクトを取得しています。

 その後ろにまだ何かくっついていますね。これは Valueプロパティ というもので、「セル C2 というオブジェクトから値をもらいますよ」という意味です。このプロパティは「 = 」という演算子によって、その性質を変えてしまうことができます。最初の状態ではこのセルには何も入っていませんが、

Range("C6").Value = x

という命令文で x の値が入力されます。 VBA にはたくさんのプロパティが用意されていますが、別に全部覚える必要もないので、その都度少しずつ覚えていきましょう。ただ、忘れてもいつでも参照できるように、一度使ったプロパティや関数などは PC のテキストなどにメモしておくとよいかもしれません。

 ≫ 次の講座「繰返し処理」へ進みます
 ≫ 数学マクロ講座トップページへ戻ります

スポンサーリンク
スポンサーリンク
末尾広告
末尾広告

コメントをどうぞ

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください