タイトル : Re^3: エラー処理追加(修正) 投稿日 : 2009/11/13(Fri) 10:12 投稿者 : GOD
> > Ubound(配列b) > 0のとき、配列b(1)が、欲しい文字列になりませんか? > > なりませんか? と問われるなら、[なりません]と答えておきます。 > へへへ さん の言う通りのプログラム書いてみました。 花ちゃんの言う通りならないし、 仮に正しく修正(?)したとしても S.Eleven さんのもの と違う結果が返されることがありますね。(どちらの結果が望ましいかはわかりませんが) Private Sub Command1_Click() Debug.Print Extex("ABCD1234EFG", "ABCD", "EFG") Debug.Print Extex2("ABCD1234EFG", "ABCD", "EFG") '開始文字〜終了文字の間に開始文字が含まれてしまっている場合 Debug.Print Extex("ABCD1ABCD234EFG", "ABCD", "EFG") Debug.Print Extex2("ABCD1ABCD234EFG", "ABCD", "EFG") End Sub 'Ubound(配列a) > 0だったら、配列a(1)を終了指定文字で再度splitして配列bを作成す 'れば、Ubound(配列b) > 0のとき、配列b(1)が、欲しい文字列になりませんか? Public Function Extex2(Origin As Variant, LSideword As String, RSideword As String) As Variant Dim sSplit() As String Dim sRet As String sSplit = Split(Origin, LSideword) '配列a作成 If UBound(sSplit) > 0 Then sSplit = Split(sSplit(1), RSideword) '配列b作成 If UBound(sSplit) > 0 Then sRet = sSplit(1) 'ここは多分 0だと思うが。 End If End If Extex2 = sRet End Function |