• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:EXCEL VBAで頭の5文字と語尾の5字が一致する語の検索方法について)

【EXCEL VBA】頭の5文字と語尾の5字が一致する語の検索方法について

このQ&Aのポイント
  • EXCEL VBAで頭の5文字と語尾の5字が一致する語の検索方法について教えてください。
  • A列の各データの最初の3文字と最後の3文字が一致するD列の行数をA列に対応する行に記載する方法をEXCEL VBAで教えてください。
  • A列のセルの最初と最後の3文字が一致するD列のデータが2つある場合はA列に対応する行に記載する処理をEXCEL VBAで行うにはどうしたらいいのでしょうか。

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

  • ベストアンサー
  • nekotaru
  • ベストアンサー率50% (22/44)
回答No.1

こんな感じでしょうか? ※D列は南部線ではなく、南武線でいいでしょうか? 処理効率は考えてません Sub AAA() Dim wRowA As Long wRowA = 1 Do Until Cells(wRowA, "A").Text = "" Call BBB(wRowA) wRowA = wRowA + 1 Loop MsgBox ("A") End Sub Sub BBB(wRowA As Long) Dim wRowD As Long wRowD = 1 Do Until Cells(wRowD, "D").Text = "" If Left(Cells(wRowA, "A"), 3) = Left(Cells(wRowD, "D"), 3) And _ Right(Cells(wRowA, "A"), 3) = Right(Cells(wRowD, "D"), 3) Then If Cells(wRowA, "B").Text = "" Then Cells(wRowA, "B").Value = wRowD Else Cells(wRowA, "C").Value = wRowD End If End If wRowD = wRowD + 1 Loop End Sub

takohasisa
質問者

お礼

おおっ!!出来ました!! ありがとうございます。 なるほど Do Until で Call BBB(wRowA) を導くのですか。 マニュアル本だと Do Until Cells(wRowA, "A") = Cells(wRowd, "D") というように一つにまとめるやり方しか載っていないので 強引にこのやり方を引っ張って四苦八苦していました。 処理効率は教えていただいた式で十分速いので問題になりません。 どうもありがとうございました。

関連するQ&A