文字列FROMTO抽出 

https://github.com/xxxxxxxxx/ichiyasaGitSample

文字列のある文字からある文字の間を返す

指定された文字列に対し、FROM文字列からTO文字列の間の文字列を取得する。
戻り値にFROM文字列とTO文字列は含まない。

Sub extractText(argText As String, fromText As String, toText As String)
    Dim returnText As String
    
    returnText = Mid(argText, InStr(argText, fromText) + Len(fromText))
    
    '第一引数は検索の開始位置(第4引数を有効にするためにつけている)
    'vbBinaryCompareにすると大文字小文字を区別する(バイナリモードの比較)
    returnText = Left(returnText, InStr(1, returnText, toText, vbTextCompare) - 2)

    extractText = returnText
End Sub

使用イメージとして、SQLのSELECT句を取得したかったら以下のような感じになる。

Sub extractText2(argText As String)
    Dim returnText As String
    
    returnText = Mid(argText, InStr(argText, "SELECT ") + Len("SELECT "))
    
    '第一引数は検索の開始位置(第4引数を有効にするためにつけている)
    'vbBinaryCompareにすると大文字小文字を区別する(バイナリモードの比較)
    returnText = Left(returnText, InStr(1, returnText, "FROM ", vbTextCompare) - 2)

    extractText = returnText
End Sub

'コピー内容を貼付と同時に「折り返して全体を表示する」を解除する
'さらに一緒に貼ってしまったシェイプを削除する
Sub specialPaste()
    ActiveSheet.Paste
    Selection.WrapText = False
    ActiveSheet.DrawingObjects.Delete
End Sub


コメント