本日の記事では、VBA の Range プロパティを使ってセルの値を取得したり、またその逆にセルに値を入力するする方法について学びます。
【VBA】Value プロパティ
ワークシートのセルB2 に「こばとちゃんは今日も元気です!」という文字列が入力されているとします。このデータを取得してメッセージボックスに表示するコードを書いてみましょう。
'[VBA] セルB2の値を表示するプロシージャ(1) Sub GetValueRange_1() MsgBox Range("B2").Value End Sub 'GetValueRange_1の実行結果: 'こばとちゃんは今日も元気です!
GetValueRange_1() を実行すると「こばとちゃんは今日も元気です!」というメッセージが表示されます。
Value は Range オブジェクトの値を取得するプロパティなんだけど、これは省略してもかまいません。でも、作法としては書いておいたほうがいいかもしれませんね。ちなみに Range の代わりに Cells を使って次のように記述しても同じです。
'[VBA] セルB2の値を表示するプロシージャ(2) Sub GetValueRange_1() MsgBox Cells(2, 2).Value End Sub
ちなみに、Range はセル範囲を扱えますが、Cells は単体セルのみです。
今度はセルB2 に「こばとは九姉妹の末っ子です」というデータを入力してみます。
'[VBA] セルB2に値を入力するプロシージャ Sub OutValueRange() '文字列型変数 mystr を宣言 Dim mystr As String mystr = "こばとは九姉妹の末っ子です" Range("B2").Value = mystr End Sub
OutValueRange() を実行するとセルB2 にデータが書き込まれます。
コメント
【ChatGPT解説】VBAのValue
[教室のデスクで、先生と生徒が向かい合って座っている]
先生:こんにちは、VBAの授業にようこそ。今日はValueプロパティについてお話ししましょう。
生徒:こんにちは先生、Valueプロパティって何ですか?
先生:Valueプロパティは、VBAでセルの値を読み取ったり設定したりするために使用するものです。セルの値を取得したり、新しい値をセルに入力したりするときに便利です。
生徒:なるほど、具体的にどのように使うのでしょうか?
先生:たとえば、セルA1の値を取得したい場合、以下のようなコードを書きます。
value = Range(“A1”).Value
生徒:それはセルの値を変数に格納するんですね。では、新しい値をセルに入力する場合はどうすればいいですか?
先生:そうですね。新しい値をセルに入力するには、Valueプロパティに値を代入します。たとえば、セルB2に値を設定したい場合、以下のようなコードを使います。
Range(“B2”).Value = “Hello, VBA!”
生徒:なるほど、Valueプロパティを使ってセルの値を読み取ったり設定したりできるんですね。とても便利ですね。
先生:そうですね、ValueプロパティはVBAの中でも頻繁に使用されるプロパティの一つです。セルの値を取得したり設定したりするだけでなく、計算や条件分岐などの処理にも役立ちます。
生徒:なるほど、これからValueプロパティを使ってセルの値をいろいろ操作してみたいと思います。ありがとうございました、先生。