VBA/ExcelのValueとValue2の違いを試してみる
の編集
Top
/
VBA
/
ExcelのValueとValue2の違いを試してみる
[
トップ
] [
編集
|
差分
|
履歴
|
添付
|
リロード
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
-- 雛形とするページ --
(no template pages)
#navi(../) * ExcelのValueとValue2の違いを試してみる [#y5916541] 結論を先に記すと、以下のリンクの記載の通りになります。~ - Microsoft: Range.Value2 プロパティ (Excel) ''注釈''~ https://learn.microsoft.com/ja-jp/office/vba/api/excel.range.value2#remarks~ 抜粋すると ''Value2 プロパティで Currency データ型と Date データ型が使用されない点です。''~ ''倍精度浮動小数点型 (Double) を使用することにより、これらの 2 種類のデータ型の値を浮動小数点数として返すことができます。'' * 関連サイト [#zb5a7b57] - Microsoft: Range.Value2 プロパティ (Excel)~ https://learn.microsoft.com/ja-jp/office/vba/api/excel.range.value2 - Microsoft: Range.Value2 プロパティ (Excel) ''注釈''~ https://learn.microsoft.com/ja-jp/office/vba/api/excel.range.value2#remarks - Microsoft: Range.Value プロパティ (Excel)~ https://learn.microsoft.com/ja-jp/office/vba/api/excel.range.value * Range.Value と Range.Value2 を試してみる [#q79dbecc] 以下のシートと以下のVBAコードを作成し実行してみました。 ** テスト用シートとVBAコード [#t835fb86] -シート #br #ref(01.png) #br -VBAコード Sub ValueAndValue2Test() Worksheets("Sheet1").Activate Dim valueResult As String valueResult = _ Range("A2").Value & vbCrLf & _ Range("A3").Value & vbCrLf & _ Range("A4").Value & vbCrLf & _ Range("A5").Value & vbCrLf & _ Range("A6").Value & vbCrLf & _ Range("A7").Value & vbCrLf Dim value2Result As String value2Result = _ Range("A2").Value2 & vbCrLf & _ Range("A3").Value2 & vbCrLf & _ Range("A4").Value2 & vbCrLf & _ Range("A5").Value2 & vbCrLf & _ Range("A6").Value2 & vbCrLf & _ Range("A7").Value2 & vbCrLf MsgBox ( _ "Range.Value" & vbCrLf & valueResult & vbCrLf & _ "Range.Value2" & vbCrLf & value2Result) End Sub ** 実行結果 [#oaf4d2bf] 以下のようにValue2の場合、日付(Date)が値になって返却されているのが確認できます。~ 通貨に関しては、数値ですのでそのまま数値で表示されていますが、Value2の注釈の通り、~ 日付(Date)と通貨(Currency)は倍精度浮動小数点型 (Double)として返却されているのでしょう。 #ref(02.png) 以上、Range の Value と Value2 を試してみた記事となります。 #htmlinsert(office_ads_btm.html)
タイムスタンプを変更しない
#navi(../) * ExcelのValueとValue2の違いを試してみる [#y5916541] 結論を先に記すと、以下のリンクの記載の通りになります。~ - Microsoft: Range.Value2 プロパティ (Excel) ''注釈''~ https://learn.microsoft.com/ja-jp/office/vba/api/excel.range.value2#remarks~ 抜粋すると ''Value2 プロパティで Currency データ型と Date データ型が使用されない点です。''~ ''倍精度浮動小数点型 (Double) を使用することにより、これらの 2 種類のデータ型の値を浮動小数点数として返すことができます。'' * 関連サイト [#zb5a7b57] - Microsoft: Range.Value2 プロパティ (Excel)~ https://learn.microsoft.com/ja-jp/office/vba/api/excel.range.value2 - Microsoft: Range.Value2 プロパティ (Excel) ''注釈''~ https://learn.microsoft.com/ja-jp/office/vba/api/excel.range.value2#remarks - Microsoft: Range.Value プロパティ (Excel)~ https://learn.microsoft.com/ja-jp/office/vba/api/excel.range.value * Range.Value と Range.Value2 を試してみる [#q79dbecc] 以下のシートと以下のVBAコードを作成し実行してみました。 ** テスト用シートとVBAコード [#t835fb86] -シート #br #ref(01.png) #br -VBAコード Sub ValueAndValue2Test() Worksheets("Sheet1").Activate Dim valueResult As String valueResult = _ Range("A2").Value & vbCrLf & _ Range("A3").Value & vbCrLf & _ Range("A4").Value & vbCrLf & _ Range("A5").Value & vbCrLf & _ Range("A6").Value & vbCrLf & _ Range("A7").Value & vbCrLf Dim value2Result As String value2Result = _ Range("A2").Value2 & vbCrLf & _ Range("A3").Value2 & vbCrLf & _ Range("A4").Value2 & vbCrLf & _ Range("A5").Value2 & vbCrLf & _ Range("A6").Value2 & vbCrLf & _ Range("A7").Value2 & vbCrLf MsgBox ( _ "Range.Value" & vbCrLf & valueResult & vbCrLf & _ "Range.Value2" & vbCrLf & value2Result) End Sub ** 実行結果 [#oaf4d2bf] 以下のようにValue2の場合、日付(Date)が値になって返却されているのが確認できます。~ 通貨に関しては、数値ですのでそのまま数値で表示されていますが、Value2の注釈の通り、~ 日付(Date)と通貨(Currency)は倍精度浮動小数点型 (Double)として返却されているのでしょう。 #ref(02.png) 以上、Range の Value と Value2 を試してみた記事となります。 #htmlinsert(office_ads_btm.html)
テキスト整形のルールを表示する
添付ファイル:
02.png
448件
[
詳細
]
01.png
389件
[
詳細
]