Excel VBA 質問スレッド №1945 (解決済)

条件分岐について

投稿者 : 初心者I.     投稿日時 : 2024/06/26(Wed) 09:59:22     OS : 未指定     EXCEL : Office 365
もしQ(i+7)のセルとKjのセルの文字列が一致したら、CiにJiの文字列を表示する。
一致しなかったらj=j+1にしてまた参照をする。というのをjが700になるまで繰り返し行い、終わったら次はi=i+1にして再度繰り返す。
こういった作業を行いたいのですが、どこが違うのかわかりません。VBAは初めて触っているので当たり前のところもわかっていない可能性があります。お手数ですが、よろしくお願いいたします。

Sub 参照()

    Dim i, j
       i = 5
       Do Until i > 40
            For j = 5 To 700
              If Range("Q(i+7)") = ("Kj") Then
                 Range("Ci") = ("Jj")
              Else
            Next j
              End If
        i = i + 1
       Loop
    
End Sub

スポンサーリンク
[返信 1] Re : 条件分岐について
投稿者 : さんこう     投稿日時 : 2024/06/26(Wed) 12:31:16
>どこが違うのかわかりません。

まずは、セルの参照方法から直していくといいでしょう。

参考になれば。

<VBA セル参照 変数>
https://www.google.com/search?q=VBA+%E3%82%BB%E3%83%AB%E5%8F%82%E7%85%A7+%E5%A4%89%E6%95%B0

[返信 2] Re : 条件分岐について
投稿者 : 文字文字     投稿日時 : 2024/06/26(Wed) 22:37:36
>Range("Q(i+7)")

""で囲まれたものは文字です
文字と計算式の違いを分かってないようです
文字連結の仕方は解ってますよね、数式と同じです

[返信 3] Re : 条件分岐について
投稿者 : てらてら     投稿日時 : 2024/06/27(Thu) 05:11:31
こんにちは。

"Q(i+7)" は、「Q(i+7)」という文字列。
"Q" & i+7 とすれば、i=5 なら "Q12" となります。

同じように、"K" & j として、 j=5 なら "K5" となります。

ただ、右辺の Range を省略してはいけません。

If Range("Q" & i+7 ) = Range("K" & j ) Then
Range("C" & i) = Range("J" & j)

が正解。

それと、If文がFor文をまたいでいます。これは間違い。

Do Until の使い方は間違っていないけど、For文で書いた方が、繰り返しの開始と最後が分かりやすいです。

Sub 参照()
    Dim i As Long, j As Long
    
    For i = 5 To 40
        For j = 5 To 700
            If Range("Q" & i + 7) = Range("K" & j) Then
                 Range("C" & i) = Range("J" & j)
            End If
        Next j
    Next i
    
End Sub

[返信 4] Re : 条件分岐について
投稿者 : 初心者I.     投稿日時 : 2024/07/12(Fri) 13:48:19
返信遅くなり申し訳ございません。
ご回答ありがとうございます。

今後の参考にさせていただきます。

[返信 5] Re : 条件分岐について
投稿者 : 初心者I.     投稿日時 : 2024/07/12(Fri) 13:50:00
みなさま

ご回答ありがとうございます。
全くわかっていない状態で丁寧に教えていただき、とても助かりました。

当掲示板について
  • Excel VBA に関する掲示板です。Excel VBA に関する質問や疑問、それに対する解決方法など気軽に投稿してください。
  • 記事内ではHTMLのタグは使用できません。
  • 記事は一度投稿すると修正できません。内容を訂正したい場合は返信で対応してください。
  • Sub〜End Sub、Function〜End Function は自動的にプログラムコードとみなし、枠で囲って見やすくします。
  • Excel VBA とは関係ないことや、他人が不快に思うようなことなど、管理人が適当でないと判断した記事は削除する場合があります。
スポンサーリンク
返信入力フォーム
お 名 前  :
内  容   :

ステータス  :

認証コード  : キャプチャ画像 




( 処理日時 : 2025-07-02 22:48:31 )
タイトルとURLをコピーしました