Range.Value プロパティ (Excel)Range.Value property (Excel)

指定されたセル範囲の値を表すバリアント型 (Variant) の値を設定します。値の取得および設定が可能です。Returns or sets a Variant value that represents the value of the specified range.

構文Syntax

Value (RangeValueDataType)expression.Value (RangeValueDataType)

expressionRange オブジェクトを表す変数です。expression A variable that represents a Range object.

パラメーターParameters

名前Name 必須 / オプションRequired/Optional データ型Data type 説明Description
RangeValueDataTypeRangeValueDataType 省略可能Optional VariantVariant セル範囲の値のデータ型を指定します。The range value data type. XlRangeValueDataType 定数にすることができます。Can be an XlRangeValueDataType constant.

解説Remarks

XML スプレッドシート ファイルのセル範囲のデータを設定する場合、ブックの最初のシートの値のみが使用されます。When setting a range of cells with the contents of an XML spreadsheet file, only values of the first sheet in the workbook are used. 隣接していないセル範囲の値を XML スプレッド シート形式で取得または設定することはできません。You cannot set or get a discontiguous range of cells in the XML spreadsheet format.

範囲の既定のメンバーは、パラメーターのない呼び出しをValueに転送します。The default member of Range forwards calls without parameters to Value. したがってsomeRange = someOtherRange 、はにsomeRange.Value = someOtherRange.Value相当します。Thus, someRange = someOtherRange is equivalent to someRange.Value = someOtherRange.Value.

最初の領域に複数のセルが含まれている範囲の場合、 Valueは、最初の範囲の個々のセルに含まれる値の2次元配列を含むバリアント型 (Variant ) の値を返します。For ranges whose first area contains more than one cell, Value returns a Variant containing a 2-dimensional array of the values in the individual cells of the first range.

2次元配列をValueプロパティに割り当てると、1回の操作で範囲に値がコピーされます。Assigning a 2-dim array to the the Value property will copy the values to the range in one operation. 対象範囲が配列より大きい場合、残りのセルにはエラー値が返されます。If the target range is larger than the array, the remaining cells will receive an error value.

複数領域の範囲への配列の割り当ては、適切にサポートされていないため、回避する必要があります。Assigning an array to a multi-area range is not properly supported and should be avoided.

Example

次の使用例は、作業中のブックのシート1のセル A1 の値を3.14159 に設定します。This example sets the value of cell A1 on Sheet1 of the active workbook to 3.14159.

Worksheets("Sheet1").Range("A1").Value = 3.14159

次の使用例は、作業中のブックのシート1のセル範囲 A1: D10 をループします。This example loops on cells A1:D10 on Sheet1 of the active workbook. いずれかのセルの値が0.001 未満の場合、値は 0 (ゼロ) に置き換えられます。If one of the cells has a value of less than 0.001, the code replaces the value with 0 (zero).

For Each cell in Worksheets("Sheet1").Range("A1:D10") 
   If cell.Value < .001 Then 
      cell.Value = 0 
   End If 
Next cell

次の使用例は、シート1のセル範囲 A1: CC5000 の値をループします。This example loops over the values in the range A1:CC5000 on Sheet1. 値の1つが0.001 より小さい場合、このコードは値を 0 (ゼロ) に置き換えます。If one of the values is less than 0.001, the code replaces the value with 0 (zero). 最後に、値を元の範囲にコピーします。Finally it copies the values to the original range.

Public Sub TruncateSmallValuesInDataArea()
   Dim dataArea As Excel.Range
   Set dataArea = ThisworkBook.Worksheets("Sheet1").Range("A1:CC5000")
   
   Dim valuesArray() As Variant
   valuesArray = dataArea.Value
   
   Dim rowIndex As Long
   Dim columnIndex As Long
   For rowIndex = LBound(valuesArray, 1) To UBound(valuesArray, 1)
      For columnIndex = LBound(valuesArray, 2) To UBound(valuesArray, 2)
         If valuesArray(rowIndex, columnIndex) < 0.001 Then
            valuesArray(rowIndex, columnIndex) = 0
         End If 
      Next
   Next
   
   dataArea.Value = valuesArray
End Sub

サポートとフィードバックSupport and feedback

Office VBA またはこの説明書に関するご質問やフィードバックがありますか?Have questions or feedback about Office VBA or this documentation? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.