VisualBasic2008ExpressEditionでプログラムしています。


Module1.vb内に、次のような処理をしてくれるPublic Functionを作りたいです。

つきましては、コードをご教示ください。

0. Public Functionの名前はAaaとする
1. 各種パラメータを受け取る
  1-1. strGiven As String
  2-1. strFind As String
  1-2. strResult As String
2. strGivenの中に、strFindに格納されているのと同じ文字列が含まれているか、strGivenの後尾から順に探す
3-1. もし発見されなかったら、strResultに"NotExist"を代入する
3-2. もし発見されたら、
  3-1-1. strGivenに格納されている文字列のうち、strFindに格納されている文字列そのものをも含む、その部分から見て後ろ側を、削除する
  3-1-2. strResultに"Exist"を代入する

回答の条件
  • 1人2回まで
  • 登録:2009/10/26 14:34:33
  • 終了:2009/10/26 14:40:34

ベストアンサー

id:waku2waku No.2

わくわく回答回数11ベストアンサー獲得回数22009/10/26 14:37:25

ポイント100pt

以下のコードでOKだと思いますよ。

  If Instr(strGiven, strFind) > 0 then

   strResult = "Exist"

  ElseIf Instr(strGiven, strFind) = then

   strResult = "NotExist"

  Else

   strResult = "Error!"

  End If

id:jjkkjpjjkkjp

ありがとうございます。

2009/10/26 14:40:25

その他の回答(1件)

id:godabln No.1

godabln回答回数94ベストアンサー獲得回数02009/10/26 14:35:16

同じ質問ばかり鬱陶しいです。

id:waku2waku No.2

わくわく回答回数11ベストアンサー獲得回数22009/10/26 14:37:25ここでベストアンサー

ポイント100pt

以下のコードでOKだと思いますよ。

  If Instr(strGiven, strFind) > 0 then

   strResult = "Exist"

  ElseIf Instr(strGiven, strFind) = then

   strResult = "NotExist"

  Else

   strResult = "Error!"

  End If

id:jjkkjpjjkkjp

ありがとうございます。

2009/10/26 14:40:25
  • id:hissssa
    waku2wakuさんの回答は質問の条件を満たしてない気が。strGivenを「後ろから探して」ないし、一致発見時に一致部分以後の削除もしてないですし。つかそれ以前に3行目がおかしいような・・・。
  • id:waku2waku
    わくわく 2009/10/26 16:04:20
    hissssaさん、ご指摘ありがとうございます。

    あわててたので、確かに間違ってました。^^;

    以下のようなコードでどうでしょう?

    jjkkjpjjkkjpさん、スイマセンでした。m(_ _)m


    --
    Dim nPos As Long

    nPos = InstrRev(strGiven, strFind)

     If nPos > 0 then

       strGiven = Left(strGiven, nPos -1)
       strResult = "Exist"

     ElseIf nPos = 0 then

       strResult = "NotExist"

     Else

       strResult = "Error!"

     End If

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません