• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルVBA)

エクセルVBAでA列を基準にBC列を更新する処理

このQ&Aのポイント
  • エクセルVBAを使用して、A列を基準にBC列を更新する処理を作成したい場合、以下のコードを使用します。
  • コードでは、A列が数値以外の場合は処理をスキップし、次の行に進むようになっています。
  • また、BC列が空白の場合はAの数値を入れ、A>Bの場合はB列を更新し、A<Cの場合はC列を更新します。

質問者が選んだベストアンサー

  • ベストアンサー
  • shut0325
  • ベストアンサー率40% (490/1207)
回答No.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)
回答No.1

試してませんが、こうとか: 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

abcii2k
質問者

お礼

できました、すぐに回答してくださってありがとうございます。

関連するQ&A