次の方法で共有


Range.Value プロパティ (Excel)

指定されたセル範囲の値を表すバリアント型 (Variant) の値を設定します。値の取得および設定が可能です。

構文

Value (RangeValueDataType)

expressionRange オブジェクトを表す変数です。

パラメーター

名前 必須 / オプション データ型 説明
RangeValueDataType 省略可能 バリアント型 (Variant) セル範囲の値のデータ型を指定します。 XlRangeValueDataType 定数を指定できます。

注釈

XML スプレッドシート ファイルのセル範囲のデータを設定する場合、ブックの最初のシートの値のみが使用されます。 隣接していないセル範囲の値を XML スプレッド シート形式で取得または設定することはできません。

Range の既定のメンバーは、パラメーターのない呼び出しを Value に転送します。 したがって、 someRange = someOtherRange は と someRange.Value = someOtherRange.Value同等です。

最初の領域に複数のセルが含まれる範囲の場合、 Value は、最初の範囲の個々のセルの値の 2 次元配列を含む Variant を 返します。

Value プロパティに 2 dim 配列を割り当てると、1 回の操作で値が範囲にコピーされます。 ターゲット範囲が配列より大きい場合、残りのセルはエラー値を受け取ります。

複数領域範囲への配列の割り当ては適切にサポートされていないため、避ける必要があります。

次の使用例は、作業中のブックの Sheet1 のセル A1 の値を 3.14159 に設定します。

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

次の使用例は、作業中のブックの Sheet1 のセル A1:D10 をループします。 いずれかのセルの値が 0.001 未満の場合、コードはその値を 0 (ゼロ) に置き換えます。

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

次の使用例は、Sheet1 の範囲 A1:CC5000 の値をループ処理します。 いずれかの値が 0.001 未満の場合、コードは値を 0 (ゼロ) に置き換えます。 最後に、値を元の範囲にコピーします。

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

サポートとフィードバック

Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。