ExcelVBA(マクロ)でセルの値を取得する方法/Value、Textプロパティの使い方

IT

vbaでセルに表示されている値を「取得」する方法のご紹介です。

関数ごとコピーする方法が知りたい方は下記をどうぞ。

ExcelVBA(マクロ)でセルを選択、コピー、ペーストする方法/Select、Copy、Pasteメソッドの使い方
VBAでセルを選択し、選択したセルをコピペする方法のご紹介です。
Advertisements

Valueプロパティの使い方

セルの値を取得するには、Valueプロパティを参照します。

セルの値の取得
対象.value
val1
たとえばA1にこのような数値があるとします。
val2
Range(“B1”).Value = Range(“A1”).ValueA1の値を取得してB1の値に代入すると記述します。
val3
無事にA1の値がB1にコピーできました。
ただし、この値は書式情報を含みません。
val4
たとえば桁区切りを表示した1,234,567に対してvalueを実行した場合……。
val5
「値」にあたる1234567だけがコピーされます。

Textプロパティの使い方

表示されている値を取得したい場合は、Textプロパティを使用します。

表示されている値の取得
対象.text
val6
Range(“B2”).Value = Range(“A2”).TextA2の表示された値を取得してB2に代入すると記述します。
val7
桁区切りごと数値が表示されました。
val8
ただし見た目を合わせているだけで、書式を揃えているわけではありません。A2の書式は「数値」ですが……。
val9
マクロを実行したB2の書式は「通貨」だったりします。見た目上同じ数値になっているものの、書式は必要に応じて適当なものが採用されます。
val10
Range(“B2”).Text = Range(“A2”).Textはエラーになります。Textは取得のみで、代入する対象には指定できません。

シリアル値を取得したい場合

Value2プロパティで取得すればシリアル値が代入されます。詳しくは下記参照。

ExcelVBA(マクロ)で日付のシリアル値を取得する方法/Value2プロパティの使い方
valueで日付を参照した場合、取得されるのは表示されている日付となります。 これをシリアル値に換算するには、専用のvalue2プロパティを用います。

マクロによるセルの値の取得については以上です。

やりたいことから方法を探すエクセルExcel操作・関数・VBA(マクロ)逆引きまとめ
逆引き(やりたいことから探す)Excel記事まとめ
関数・演算子・メソッド・プロパティ名から探すExcel/VBA(マクロ)使い方・組み合わせ方まとめ
こちらはExcelやメソッドの諸機能を、機能の名称から探せるまとめ記事です。

コメント