- ベストアンサー
エクセルVBAでA列を基準にBC列を更新する処理
- エクセルVBAを使用して、A列を基準にBC列を更新する処理を作成したい場合、以下のコードを使用します。
- コードでは、A列が数値以外の場合は処理をスキップし、次の行に進むようになっています。
- また、BC列が空白の場合はAの数値を入れ、A>Bの場合はB列を更新し、A<Cの場合はC列を更新します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
以下の部分でそのような処理にしているからです。 If IsNumeric(A.Value) Then→数値だった場合 →なにもしない。 Else→それ以外の場合(数値以外)は Exit Sub→サブルーチンを抜ける。 End If こんな感じです。 正しくは、 For i = 1 To 10 Set A = Cells(i, 1) Set B = A.Offset(0, 1) Set C = A.Offset(0, 2) If IsNumeric(A.Value) Then If B.Value = "" Then B.Value = A.Value If C.Value = "" Then C.Value = A.Value If A.Value > B.Value Then B.Value = A.Value If A.Value < C.Value Then C.Value = A.Value End If Next i でよいと思います。
その他の回答 (1)
- osamuy
- ベストアンサー率42% (1231/2878)
試してませんが、こうとか: Sub test() Dim A As Range, B As Range, C As Range Dim i As Long For i = 1 To 10 Set A = Cells(i, 1) Set B = A.Offset(0, 1) Set C = A.Offset(0, 2) Debug.Print i; ": IsNumeric("; A.Address; ")="; IsNumeric(A) If IsNumeric(A) Then If B.Value = "" Then B.Value = A.Value If C.Value = "" Then C.Value = A.Value If A.Value > B.Value Then B.Value = A.Value If A.Value < C.Value Then C.Value = A.Value End If Next i End Sub
お礼
できました、すぐに回答してくださってありがとうございます。