重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【6/2終了】教えて!gooアプリ版

Sub 転記()
Dim s As String, i As Integer
Dim ss As String, ii As Integer

s= "スカイライン(GTR)"
ss = "スカイライン"

i = InStr(1, Worksheets("Sheet1").Range("A1").Value, s)
If i > 0 Then
Worksheets("Sheet2").Range("A1").Value = s
Else
Worksheets("Sheet2").Range("A1").Value = ""
End If

ii = InStr(1, Worksheets("Sheet1").Range("A1").Value, ss)
If ii > 0 Then
Worksheets("Sheet2").Range("A1").Value = ss
Else
Worksheets("Sheet2").Range("A1").Value = ""
End If

End Sub

セルAIにスカイライン(GTR)と入力されていても、上記コードを実行すると
スカイラインとしか転記されません。

()等がつくとだめなんですかね?

これを修正するためのコードをご教示お願いします。

A 回答 (2件)

今回の物は順番が逆ならば良いと思います。


(「スカイライン(GTR)」に「スカイライン」が含まれているので上書きされてしまう)
    • good
    • 0
この回答へのお礼

ありがとうございました。
素早い回答に感謝します。

お礼日時:2016/05/10 15:04

Sub 転記()


Dim s As String
Dim ss As String

s = "スカイライン(GTR)"
ss = "スカイライン"
Worksheets("Sheet2").Range("A1").Value = ""
If InStr(1, Worksheets("Sheet1").Range("A1").Value, ss) > 0 Then
Worksheets("Sheet2").Range("A1").Value = ss
Exit Sub
End If
If InStr(1, Worksheets("Sheet1").Range("A1").Value, s) > 0 Then
Worksheets("Sheet2").Range("A1").Value = s
End If

End Sub

こういう場合は、上記のように条件が整った時に「 Exit Sub 」で抜けるのが良いですよ。
    • good
    • 0
この回答へのお礼

なるほど、勉強になりました。
重ねて、お礼申し上げます。
ありがとうございました。

お礼日時:2016/05/10 15:06

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!