Excel VBA SubString
Excel VBA SubStringはVBAで非常に便利なタイプの関数で、データを文字列に切り刻んで使用するものです。 しかし、ワークシート関数では、左・右・中関数の3つのサブストリング関数があるのに対し、VBAではサブストリング関数として左・右・中関数とスプリット関数があります。 VBAのサブストリング関数は、その名の通り、文字列を複数のサブストリングに分割する関数です。 また、VBAには上記のように複数のVBA Substring関数があります。 今回は、これらのSubstring関数を個別に使用する方法を、例題を使って学びます。
Syntax of Excel VBA SubString
Following are the different syntax:
Watch our Demo Courses and Videos
Valuation, Hadoop, Excel, Mobile Apps, Web Development & many more.
Left SubString 関数の構文:
Text string は入力として提供する文字列、length は入力文字列から求める文字数です。 ANAND という文字列があり、AN を部分文字列として使用する場合、コードは
Left (“ANAND”,2)
Syntax of Right SubString Function:
Text string is the string we provide as input while the length is the number of characters we want from the input string.
Example.The string are a string as a string as a string as a string is the length are the number of characters we want from a string: ANAND という文字列があり、上記と同じコードを使用すると、結果は
Right (“ANAND”,2)
この結果、ND が得られます。
VBA の Mid SubString 関数の構文:
Text string は入力として提供する文字列、 Start position は文字を抽出する開始位置、 Length は入力文字列から取得する文字数です。
MID (“COMPUTER”,4,3)
Split SubString 関数の構文:
- Expression As String.Expression(式)。 これは SPLIT 関数で必須の引数です。 基本的には我々が提供する入力文字列です。
- Delimiter: これはオプションの引数である。 文字列を分割する特定のデリミタであるが、デフォルトでは、スペースがデフォルトのデリミタとみなされる。 文字列を分割する最大数を指定します。 しかし、この関数に制限を与えなければ、VBAはそれをデフォルトの-1として扱います。 これは、文字列に区切り記号があるたびに文字列が分割されると結論付けています。 この最後の引数もオプションの引数です。
- 0 にすると、SPLIT はバイナリ比較を行い、すべての文字が一致することを意味します。
たとえば、Split(“I AM A GOOD BOY”)と書くと、文字列を分割して表示します(各単語は別々)。
注意:VBAを使用するには、オプションセクションのファイルタブから開発者用タブを有効にする必要があります。VBA で SubString 関数を使用するには?
VBAのコードを使って、ExcelでSubString関数を使用する方法を学習します。
このVBA SubString Excelテンプレートはこちらからダウンロードできます – VBA SubString Excel Template例1
VBAで左のサブストリング関数を使用する。 VBAで最初のサブストリング関数を使用してみましょう。 このためには、以下の手順に従ってください:
ステップ1:開発者のタブに移動し、Visual BasicをクリックしてVB Editorを開きます。
ステップ2:新しいモジュールをVBE (Visual Basic Editor) 内に挿入してください。 挿入]タブ>をクリックし、モジュールを選択します。
ステップ3:コードを書き始めるためにサブ関数を宣言する。
コード:
Sub Sample()End Sub
Step 4: ユーザーから入力を受け取るものと、結果の値を格納する2つの文字列を宣言する。
コード:
Sub Sample()Dim A, B As StringEnd Sub
ステップ5:入力ボックス関数を使って入力文字列にユーザーから入力を受け取ります。
コード:
Sub Sample()Dim A, B As StringA = InputBox("Enter a String", "Single String")End Sub
ステップ6:B変数に左関数からの値を3位まで格納します。
コード:
Sub Sample()Dim A, B As StringA = InputBox("Enter a String", "Single String")B = Left(A, 3)End Sub
ステップ7:Msgbox関数を使って最終結果を表示させます。
コード:
Sub Sample()Dim A, B As StringA = InputBox("Enter a String", "Single String")B = Left(A, 3)MsgBox BEnd Sub
ステップ8:次にF5キーを押して上記のコードを実行します。
ステップ9:OKを押すと、左Substring関数の結果が表示されます。
ANAは文字列の左から3文字。
例2
VBA で RIGHT Substring 関数。 このためには、以下の手順に従ってください:
ステップ1:同じモジュールでは、右のサブストリング関数のコードを書き始めるために別のサブ関数を宣言します。
ステップ2:2変数AおよびBは、文字列として宣言します。
コード:
Sub Rightsub()Dim A, B As StringEnd Sub
ステップ3:ユーザーからの入力を受け取り、その値をA変数に格納します。
コード:
Sub Rightsub()Dim A, B As StringA = InputBox("Enter a String", "Single String")End Sub
ステップ4:3位までの文字列に右関数を使って、その値をB変数に格納します。
Code:
Sub Rightsub()Dim A, B As StringA = InputBox("Enter a String", "Single String")B = Right(A, 3)End Sub
ステップ5: Msgbox関数を使ってBの値を表示します。
Code:
Sub Rightsub()Dim A, B As StringA = InputBox("Enter a String", "Single String")B = Right(A, 3)MsgBox BEnd Sub
Step 6: このコードを実行して入力文字を「母さん」として入力してください。
ステップ7:OKを押して結果を確認します。
HERは文字列の右から3文字です。
サンプル#3
MID Substring Function in VBA.MIDは、VBAのサブストリング関数です。
ステップ1:同じモジュールで別のサブ関数を宣言し、MID関数のコードを書き始める。
コード:
Sub MIDsub()End Sub
ステップ2:二つの変数A、BはStringとして宣言する。
コード:
Sub MIDsub()Dim A, B As StringEnd Sub
ステップ3:ユーザーから入力を受け、その値を変数Aに格納します。
コード:
Sub MIDsub()Dim A, B As StringA = InputBox("Enter a String", "Single String")End Sub
ステップ4:開始位置を4、長さを3としてMid関数を使ってBに値を格納して、Msgbox関数を使ってそれを表示します。
コード:
Sub MIDsub()Dim A, B As StringA = InputBox("Enter a String", "Single String")B = Mid(A, 4, 3)MsgBox BEnd Sub
ステップ5:上記のコードを実行し、入力としてCOMPUTERを与える
ステップ6:最終結果を表示するにはOKボタンを押します。
部分文字列PUTは4位から始まり、我々は正常に3文字を抽出した。
例4
VBA Split SubString Functionを使用しています。
ステップ1:同じモジュールでサブ関数を宣言し、サブ関数のコードを書き始めます。
Sub SplitSub()End Sub
ステップ2:Aという変数とBという文字列の配列を宣言して、ユーザーから入力文字列を取って変数Aに格納します。
コード:
Sub SplitSub()Dim A As StringDim B() As StringA = InputBox("Enter a String", "Separate with Commas")End Sub
ステップ3: Split SubString関数を使用して、その値を変数Bに格納します。
コード:
Sub SplitSub()Dim A As StringDim B() As StringA = InputBox("Enter a String", "Separate with Commas")B = Split(A, ",")End Sub
ステップ4:Forループを使ってすべてのSubStringを1行で表示させます。
コード:
Sub SplitSub()Dim A As StringDim B() As StringA = InputBox("Enter a String", "Separate with Commas")B = Split(A, ",")For i = LBound(B) To UBound(B)strg = strg & vbNewLine & "String Number " & i & " - " & B(i)Next iMsgBox strgEnd Sub
ステップ5 上記のコードを実行し、入力として I,AM,GOOD,BOY を渡します。
ステップ6 OKを押して結果を見る。
上記の例では、区切りとして “,” を使用。
まとめ
ワークシート部分列関数同様にVBAでも部分列関数があります。 それらは、Left Right Mid関数とSplit関数です。 基本的には、文字列や文字列の配列を複数の部分文字列に分割する関数です。 文字列の左側から部分文字列を取得する場合はLeft関数、その逆の場合はRight関数を使用します。 文字列の真ん中の文字が欲しい場合は、MID関数を使います。
Things to Remember
VBA の Substring 関数について覚えておく必要があることがいくつかあります:
- それはワークシートの Substring 関数と似ています。
- 文字列の配列がある場合、split 関数を使用します。
- split 関数の入力文字列のみが必須で、その他は任意です。
おすすめ記事
これは、VBA SubString についてのガイドです。 ここでは、Excel VBAのSubString関数の使い方について、実践例やダウンロード可能なExcelテンプレートとともに解説しています。 また、他のお勧め記事 –
- VBA SendKeys
- VBA On Error Goto
- VBA Input
- VBA LBound
0 Shares