Excel VBAにおける変数の使い方

Excel VBA Tips集-6

Excel VBAで変数を使うには?

Excel VBA変数を利用するには先ず最初に変数の宣言をしなくてはなりません。変数の宣言とは、ある変数を利用できる状態にすることです。

変数の宣言は、「Dim 変数名 As データ型」という書式で行います。

データ型は変数に入れる値の種類を予め決めておくためのものです。例えばInteger型(いんてじゃーがた)というデータ型を用いて変数を宣言した場合、その変数には整数しか入れることができません。

それでは実際に簡単なサンプルコードを通じて、変数を宣言し、利用する過程を見てみましょう。

[スポンサードリンク]



num = 100」という部分に注目して下さい。このように変数に「=演算子」を用いて、値を入れることを、「変数に代入する」と言います。また「MsgBox num」という行では、変数をMsgBoxメソッド引数として利用しています。

「引数(ひきすう)」の概念がいまいち分からない方は「Excel VBAにおける引数(ひきすう)とは何か」を参照して頂けますと幸いです。

String型の変数の使い方

String型(すとりんぐがた)は文字列型とも呼ばれるデータ型です。文字列とは“りんご”のように二重引用符()で囲まれた文字のことです。例え数値であっても二重引用符()で囲まれていれば文字列です。例えば「100」は数値ですが、「“100”」は文字列です。

但し一点、注意が必要です。「Range(“A1”).Value = “100”」と書いても、A1セルに入力されるのは文字列としての100ではなく、数値としての100になってしまいます。もしセルに文字列としての数値を入力したい場合は二重引用符()とアポストロフィ()を組み合わせて、
Range(“A1”).Value = “‘100」と書きます。

それではString型の変数を用いるサンプルコードを見てみましょう。

<実行結果画面>

Object型の変数の使い方

Object型の変数はセルを表すRangeオブジェクトやWorksheetオブジェクト等を扱う変数です。その他にも「オブジェクト」と名の付くものならなんでもオブジェクト変数で取り扱います。

尚、「Dim obj As Object」という形でオブジェクト型の変数を宣言することは、文法的には間違いではありませんが、思わぬバグやエラーの温床になりやすいので、できるだけ避けましょう。

例えばA1セルはRangeオブジェクトです。A1セルを格納するオブジェクト変数を宣言するには、「Dim 変数名 As Range」と書きます。あるいはワークシートを扱うオブジェクト変数であれば「Dim 変数名 As Worksheet」と書きます。このように具体的なオブジェクト名を指定してオブジェクト変数を宣言するようにすることが重要です。

また、オブジェクト変数に値を代入するときは、
Set オブジェクト変数名 = Object」という書式を用います。オブジェクト型の変数だけ、値の代入に際して、冒頭にSetを付け加える必要があるというわけです。

抽象的な話をしていてもイメージがわきずらいと思いますので具体的なサンプルコードを見てみましょう。

ポイントは「myCell.Value」です。オブジェクト変数は普通の変数とは異なる特別な変数です。変数myCellはA2セルと同じなので、.Valueプロパティを持っています。それだけではなく変数myCellRangeオブジェクトが持っているあらゆるプロパティを持っています

<実行結果画面>

確かにA2セルの値(Value)が画面に表示されていますね。

関連項目

[AD]自分のペースでゆったり学ぶ Excel VBA

使える!Excel VBA Tips集TOPに戻る

[スポンサードリンク]

 

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA