Vbaを使用してセルに値を入力するにはどうすればよいですか?
重要なメモ
- value プロパティは両方向に使用できます (セルから値を読み書きできます)。
- Cells と Range オブジェクトを使用してセルを参照し、セルの値を設定 (取得および編集も可能) できます。
セル値を設定する
セルの値を設定するには、「Value」プロパティを使用してから、設定したい値を設定する必要があります。ここでは、これを理解するためにいくつかの例を使用しました。
1. セルに値を入力します
セル A1 に「完了」という値を入力する必要があるとします。この場合、コードは次のようになります。
Range("A1").Value = "Done"
ご覧のとおり、最初に値を追加するセルのアドレスを設定し、次に value プロパティを設定します。最後に、二重引用符で囲んだ等号「=」を使用して値「Done」を割り当てました。
次のコードのように、「Cells」プロパティを使用することもできます。
Cells(1, 1).Value = "Done"
上記のコードはセル A1 も参照しています。
これとは別に、value プロパティを使用せずにセルに値を直接割り当てる方法もあります。
Cells(1, 1) = "Done"
ただし、セルに値を入力するには value プロパティを使用することをお勧めします。
ここで、セルに数値を入力するとします。この場合、二重引用符を使用する必要はありません。次のようにコードを書くことができます。
Range("A1") = 99
また、 DATEおよびNOW ( VBA 関数) を使用して、VBA コードを使用してセルに日付またはタイムスタンプを入力することもできます。
Range("A1").Value = Date Range("A2").Value = Now
アクティブ セルに値を入力する場合、必要なコードは次のようになります。
ActiveCell.Value = Date
2. 入力ボックスの使用
ユーザーにセルに入力する値を指定してもらいたい場合は、入力ボックスを使用できます。セル A1 に値を入力するとします。コードは次のようになります。
Range("A1").Value = _ InputBox(Prompt:="Type the value you want enter in A1.")
上記のコードでは、セル A1 の値は、ユーザーが入力した値を返す入力ボックスによって返される値に割り当てられます。
3. 別のセルから
別のセルの値を使用してセル値を設定することもできます。セル B1 からセル A1 に値を追加すると、コードは次のようになります。
Range("A1") = Range("B1").Value
value プロパティを使用せずにセル B1 を参照することもできます。
Range("A1") = Range("B1")
4. 全範囲の値を設定する
単一のセルではなく、複数のセルまたはセル範囲に値を入力したいと想像してください。この場合、以下のようなコードを記述する必要があります。
Range("A1:A10").Value = Date Range("B1, B10").Value = Now
コードの最初の行にはセル A1 から A10 までの範囲全体があり、2 行目には 2 つのセル B1 と B10 があります。
セル値を取得する
先ほど述べたように、同じ value プロパティを使用してセルの値を取得できます。
1. ActiveCellの値を取得します。
アクティブ セルの値を取得したいとします。この場合、次のコードを使用する必要があります。
ActiveCell.Value = Range("A1")
上記のコードでは、アクティブ セルで value プロパティを使用し、その値をセル A1 に割り当てました。
2. 変数への代入
セルから値を取得して、それを変数に割り当てることもできます。
上記のコードには、データ型として date を持つ変数「i」があります。コードの 2 行目では、セル A1 の値が変数に割り当てられます。
3.MsgBoxに表示する
ここで、メッセージ ボックスを使用してセル A1 の値を表示するとします。この場合、コードは以下のようになります。
MsgBox Range("A1").Value
上記のコードでは、メッセージ ボックスはセル A1 から値を取得してユーザーに表示します。
セル値を変更する
セルの値を変更することもできます。ここでは、これを理解するのに役立ついくつかの例を紹介しました。
1. 既存の番号に番号を追加します
たとえば、セル A1 にある数値に 1 を追加したい場合は、次のコードを使用できます。
Range("A1").Value = Range("A1").Value + 1
上記のコードは、セル A1 自体の値を取得し、それに 1 を加算することで、セル A1 に値を割り当てます。ただし、 VBA IF THEN ELSE を使用して、セルに数値がある場合にのみ変更される条件を記述することもできます。
If IsNumeric(Range("A1").Value) Then Range("A1").Value = Range("A1").Value + 1 End If
2. セルから最初の文字を削除します
次のコードは、セル値から最初の文字を削除し、残りの値をセルに割り当てます。
Range("A1").Value = Right(Range("A1").Value, Len(Range("A1").Value) - 1)
関連するチュートリアル
- Excel で VBA を使用して行を数える
- Excel VBA フォント (色、サイズ、種類、太字)
- Excel VBA 列または行の表示と非表示を切り替える
- Excel VBA 範囲 – 範囲とセルの操作
- Excel で VBA を使用してセルに枠線を適用する