【VBA】文字列の3番目の文字を判別する方法

目次

はじめに

今回は、文字列の3番目の文字がアルファベットか数字かを判別する方法について勉強しました。
環境は以下のとおりです。

  • 使用OS: Windows 10 Pro
  • バージョン: 20H2

背景

ある文字列に、アルファベット・数字・記号が混在しているケースがありました。
その文字列の最初の2文字は必ずアルファベットであるため、これまでは Left 関数を使って2文字を抜き取る処理をしていました。

しかし、3文字目もアルファベットだった場合には、それも取得したいと考えました。
ただし、3文字目は必ずしもアルファベットとは限らず、数字のこともありました。

そのため、今回は3文字目がアルファベットか数字かをVBAで判別する方法を学びました。

使用する関数

  • Mid関数
    文字列の指定した位置から文字を抜き出す関数です。
  • IsNumeric関数
    引数が数値かどうかを判定する関数です。

これらを組み合わせて処理を行います。

実際のコード

Sub 文字列の3文字目を判別する()

    Dim mozi As String
    Dim moziChoose As String

    mozi = "AA123"
    moziChoose = Mid(mozi, 3, 1)

    If IsNumeric(moziChoose) Then
        mozi = Left(mozi, 2)
        Range("A1") = mozi
    Else
        mozi = Left(mozi, 3)
        Range("A1") = mozi
    End If

End Sub

コードの解説

1行目:サブルーチンの名前です。任意の名前で問題ありません。

2行目:変数moziを宣言します。この変数に対象となる文字列を格納します。

3行目:変数moziChooseを宣言します。この変数に3文字目を取り出して代入します。

4行目:moziに、サンプルとして「AA123」という文字列を代入しています。

5行目:Mid関数を使用して、moziから3文字目だけを抜き出し、moziChooseに格納します。この場合、「1」が取得されます。

6行目:If文を使用し、moziChooseが数値かどうかをIsNumeric関数で判定します。

7行目:もしmoziChooseが数字であれば、Left関数を使って最初の2文字のみを取得し、それを再度moziに代入します。

8行目:セル「A1」に、結果として得られた文字列(この場合「AA」)を出力します。

9行目:もしmoziChooseがアルファベットだった場合は、Else以下が実行されます。

10行目:Left関数を使って、最初の3文字を取得し、moziに代入します。

11行目:セル「A1」に、結果の文字列(3文字分)を出力します。

12行目:If文の終了を示します。

13行目:サブルーチンの終了です。

失敗談:Like演算子では実現できなかった

当初、Like演算子を用いて3文字目がアルファベットかどうかを判定しようと試みました。
具体的には、Left関数で3文字抜き出し、[A-Z]パターンに一致するかで判断できるのではと考えました。

しかし、Like演算子は文字列全体を対象にパターンマッチングを行うため、個別の1文字判定には適していないことが分かりました。
このため、最終的にはMid関数とIsNumeric関数の組み合わせを採用することになりました。

まとめ

文字列中の特定の文字を取り出して、それが数字かアルファベットかを判定するには、Mid関数IsNumeric関数を組み合わせる方法が有効です。
また、Like演算子はこの用途には向かないため注意が必要です。

今回の方法を使えば、今後似たような文字列処理でも柔軟に対応できるでしょう。
地道な勉強と試行錯誤を積み重ね、着実にスキルアップしていきたいと思います。

副業から独立まで「稼げる」Webスキルを習得する(PR)

ここまで読んでいただきありがとうございます。 最後に宣伝をさせてください。

「副業を始めたいが、何から手をつければいいかわからない」「独学でスキルはついたが、収益化できていない」という悩みを持つ方には、マンツーマン指導のWebスクール**「メイカラ」**が適しています。

このスクールは、単に技術を教えるだけでなく、**「副業として具体的にどう稼ぐか」**という実務直結のノウハウ提供に特化している点が特徴です。

講師陣は、実際に「副業Webライターから1年で独立して月収100万円」を達成したプロや、現役で利益を出し続けているブロガーなど、確かな実績を持つプレイヤーのみで構成されています。そのため、机上の空論ではない、現場で通用する戦術を学ぶことができます。

副業に特化した強み

  • 最短ルートの提示: 未経験からでも実績を出せるよう、マンツーマンで指導。
  • AI活用の習得: 副業の時間対効果を最大化するための、正しいAI活用スキルも網羅。
  • 案件獲得のチャンス: 運営がWebマーケティング会社であるため、実力次第で社内案件の紹介など、仕事に直結する可能性があります。

受講者の多くは、「在宅でできる仕事を探している」「副業を頑張りたい」という20代・30代・40代が中心です。

受講前には、講師による無料説明が行われます。無理な勧誘はなく、自分に合った副業スタイルやプランを相談できるため、まずは話を聞いてみることから始めてみてはいかがでしょうか。

ブログで稼ぎたいなら「メイカラ」

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次