次のようなシートがあったとします。この時、値を入力したセルの隣りのセルの値を
取得するには下記のような方法をとります。
【例】
A列 B列 C列
森 宮村
1 宮村 小島
鈴木
1 小島
・
・
・
芝山
A列に「1」が入力されているかどうかをFor〜Nextステートメントでループ
しながら判断していきます。「1」が入力されている場合は、アクティブになって
いるセルの隣りの列の値をOffsetプロパティを使って取得し、C列に入力します。
C列は、1行目に既に値が入力されていたら、下から空のセルを見つけて入力します。
For〜Nextステートメントに入る前には、セルA1をアクティブにして、C列を
初期化します。
Sub Sample()
Dim i As Integer
Const rowmax As Integer = 10
Range("A1").Select
Columns("C").Clear
For i = 1 To rowmax
If ActiveCell.Value = 1 Then
If Range("C1").Value = "" Then
Cells(65536, 3).End(xlUp).Value = ActiveCell.Offset(, 1).Value
Else
Cells(65536, 3).End(xlUp).Offset(1).Value _
= ActiveCell.Offset(, 1).Value
End If
End If
ActiveCell.Offset(1).Select
Next i
Range("A1").Select
End Sub
変数rowmaxの配列数に、B列のデータ数をカウントして設定するなどして
応用する事ができます。
|