目次

目的

Excel VBA で、ワークシートの指定範囲をループして、セルに入力されている値を取得、セルに入力する値を設定したい。

ループするセルの範囲は、アクティブなワークシート、現在のワークシートの A1:A5 で試してみます。

ワークシートの A1:A5 の範囲を VBA でループする。
ワークシートの A1:A5 の範囲を VBA でループする。

目次まで戻る

取得

セルに入力されている値を取得する場合は、 Range オブジェクト » Value プロパティを使用するようです。

Excel VBA のコード :

Sub vba_001735_001()
For r = 1 To 5 ' r は row の略です。 1 行目から 5 行目までループします。
Debug.Print Range("A" & r).Value ' A1 , A2 , A3 ... とセルを下っていきます。
Next
End Sub
' https://pulogu.net/blog/020-computer/excel-vba/worksheet-specified-range-loop/
' この URL 記載は、コピーライト的な意味ではなくて、このサンプルはどこのページに載っていたんだったか ? 。となった時の忘れた時のためです。私の場合、数が増えてくるとありますので。実際は End Sub まであれば動きます。

上の VBA のコードの中で、私が自由に変えているところは、以下の背景色を緑色に着色した部分です。その他の文字は、 VBA を組み立てる時の部品として決まっている文字のようです。上のコードの、シングルクオート( ' の記号)から始まる緑色の文字はコメントというもので、コードの中に書くことのできるメモ書きのようなものですので、動作に影響がありません。

Sub vba_001735_001()
For r = 1 To 5
Debug.Print Range("A" & r).Value
Next
End Sub

2 行目の

For r = 1 To 5

の部分で、ループする行の範囲を指定しています。 1 To 5 だと、 1 から 5 まで 1 ずつ増えていきます。 5 To 10 だと、 5 から 10 まで 1 ずつ増えていきます。私の使用しているバージョンの Excel だと 65536 行が最大なので、 65536 超の行番号を指定するとエラーが発生すると思います。 r としているのは、 row (英語で行の意味)の略です。 For と Next の間で、この r のカウントアップされていく数値を利用することができます。

3 行目の

Debug.Print Range("A" & r).Value

の部分で、イミディエイト ウィンドウという、一時的にテキストを出力できる場所に結果を出力しています。この結果は、 Excel を閉じるとなくなってしまいます。 Range("A" & r).Value の部分の "A" を "B" に変えると、 B 列の値が取得できます。私の使用している Excel のバージョンでは、 IV 列が最大なので "IV" まで指定可能です。

イミディエイト ウィンドウに出力した結果は、以下のようになりました。

イミディエイトウィンドウに出力した結果。
イミディエイトウィンドウに出力した結果。

イミディエイト ウィンドウに出力された結果 :

A
B
C
D
E

目次まで戻る

設定

セルに入力されている値を、新しい値に変更する場合は、 Range オブジェクト » Value プロパティを設定するようです。 Value プロパティは、値の読み書きができるプロパティのようです。

Excel VBA のコード :

Sub vba_001735_002()
For r = 1 To 5
Range("A" & r).Value = "X" ' X の文字に設定してみました。イコール( = の記号)で設定可能なようです。
Next
End Sub
' https://pulogu.net/blog/020-computer/excel-vba/worksheet-specified-range-loop/
' この URL 記載は、コピーライト的な意味ではなくて、このサンプルはどこのページに載っていたんだったか ? 。となった時の忘れた時のためです。私の場合、数が増えてくるとありますので。実際は End Sub まであれば動きます。

ワークシートがどうなったか、結果を確認してみます。以下の画像のようになりました。 A1:A5 のセルの値が全て X に設定されています。

セルの値が変更されています。
セルの値が変更されています。

目次まで戻る

テスト環境

  • Windows 10
  • Microsoft Office Excel 2003

以上、閲覧ありがとうございました。

目次まで戻る

同じカテゴリの投稿(Excel VBA)

前後の投稿