【2026年7月最新】VBA文字列操作完全マスター|追加・削除・変換・比較とClaude Code自動化術

【2026年7月最新】VBA文字列操作完全マスター|追加・削除・変換・比較とClaude Code自動化術

「VBAで文字列をうまく操作したい」「どの関数を使えばいいか分からない」——Excelマクロを業務で使い始めると、必ず文字列操作の壁にぶつかります。

VBAには文字列を扱う関数が20種類以上あり、「長さを測る」「特定の文字を置換する」「文字列を分割する」「大文字小文字を統一する」など、それぞれの用途ごとに専用関数が用意されています。これを体系的に理解することで、毎日手作業でやっているExcel作業の大半を数十行のVBAで自動化できます。

この記事では、VBAの文字列操作関数を用途別に分類して全15関数を実例コード付きで解説します。さらに後半では、Claude Codeを使ってVBAコードを自然言語で自動生成する方法も紹介します。「VBAのコードを書けなくても、AIに書いてもらえる時代」の活用法もぜひ参考にしてください。

代表菅澤 代表菅澤
Excelマクロ(VBA)は、非エンジニアの経営者・管理職が「業務をAIで自動化する」入り口として最適です。しかし、VBAの記述方法を一から覚えるのは大変。この記事を読んで文字列操作の基礎を押さえた後、Claude CodeでVBAを自動生成させれば、開発速度が10倍になります。
AI鬼管理山崎 AI鬼管理山崎
今日は「文字列操作の理解」と「Claude Codeでの自動化」を組み合わせて、VBAを使った業務効率化の最短ルートをお伝えします。

この記事を読むと以下が分かります。

✔️VBAの文字列操作関数15種の用途と使い方
✔️Len・InStr・Left/Mid/Right・Replace・Split/Joinの実例コード
✔️CStr・Val・LCase・Format・StrConvなど変換関数の全パターン
✔️Trim・Replace・StrCompなど削除・比較関数の使い方
✔️Claude CodeでVBAコードを自然言語から自動生成する方法
Claude Code 完全解説セミナー|経営者・会社役員専用 1on1 60分 無料Claude Codeを経営に活かしたい方へ — AI鬼管理
📌 この記事の結論
【2026年7月最新】VBA文字列操作完全マスター|追加・削除・変換・比較とClaude Code自動化術
VBAの文字列操作関数を完全網羅。Len・Replace・Split・Left/Mid/Right・InStr・StrComp・Trim・CStr・StrConvなど全関数を実例コード付きで解説。さらにClaude Codeを使ってVBAコードを自動生成する方法も紹介。

01 VBA文字列操作関数一覧|全15関数を用途別に整理 何ができるかを把握してから詳細に入ると理解が速い

VBAの文字列操作関数は多数ありますが、用途別に整理すると5カテゴリに分類できます。まず全体像を把握してから詳細に進みましょう。

カテゴリ関数名主な用途
長さ・検索Len, InStr文字数カウント・指定文字の位置検索
結合・分割Join, Split配列を結合/文字列を分割して配列に
抽出・挿入Left, Mid, Right先頭/中間/末尾から指定文字を取り出す
置換・削除Replace, Trim, LTrim, RTrim特定文字を置換/スペースを削除
変換CStr, Val, LCase, UCase, Format, StrConv数値⇔文字列・大小文字・全半角・かなかな変換
比較StrComp, Like文字列の比較・パターンマッチング

この15関数を使いこなすだけで、Excelで毎日手作業でやっている文字列整形・データクレンジング作業の大半を自動化できます。よく使う順番としては「Left/Mid/Right(抽出)→Replace(置換)→Trim(削除)→Split(分割)→Join(結合)」の順で覚えると実務ですぐ使えます。

💡 VBAエディターの開き方

Excelを開いて「Alt + F11」キーを押すとVBAエディター(Visual Basic Editor)が起動します。「挿入」→「標準モジュール」でコードを書くスペースが作られます。この記事のコードをそのままコピーして貼り付け、F5で実行できます。

02 文字列の長さ・検索・結合・分割(Len・InStr・Join・Split) データ整形の基本4関数を実例コードで習得する

2-1. Len:文字列の長さを取得する

📚 用語解説

Len関数:文字列の文字数(長さ)を整数で返す関数。「Len("Excel")」は5を返します。セルの文字数チェック・入力バリデーション・文字数制限のある項目確認などで使います。

Sub LenSample()
    Dim text As String
    text = "Excel自動化"

    Debug.Print Len(text)          ' 出力: 8
    Debug.Print Len("")            ' 出力: 0(空文字)

    ' 実務例:文字数が10文字を超えるセルを強調表示
    Dim cell As Range
    For Each cell In Range("A1:A100")
        If Len(cell.Value) > 10 Then
            cell.Interior.Color = RGB(255, 200, 200) ' 赤色ハイライト
        End If
    Next cell
End Sub

2-2. InStr:文字列内の指定文字の位置を取得する

📚 用語解説

InStr関数:文字列の中で特定の文字が何文字目にあるかを返す関数。見つからない場合は0を返します。「InStr("Excel VBA", "VBA")」は7を返します。

Sub InStrSample()
    Dim text As String
    text = "山田 太郎 (営業部)"

    ' 括弧の位置を探す
    Dim pos As Integer
    pos = InStr(text, "(")
    Debug.Print pos             ' 出力: 8
    Debug.Print InStr(text, "経理")  ' 出力: 0(見つからない)

    ' 実務例:メールアドレスに@が含まれるか確認
    Dim email As String
    email = "user@example.com"
    If InStr(email, "@") > 0 Then
        Debug.Print "有効なメールアドレス形式"
    Else
        Debug.Print "メールアドレスが無効"
    End If
End Sub

InStrはメールアドレスの検証・特定キーワードの存在確認・文字列パターンの位置特定など、データクレンジングで日常的に使う必須関数です。見つからない場合は0を返すため、「If InStr(...) > 0 Then」という条件分岐と組み合わせて使います。

2-3. Split:文字列を特定の区切り文字で分割する

Sub SplitSample()
    Dim csvLine As String
    csvLine = "山田,太郎,30,営業部"

    ' カンマで分割
    Dim parts() As String
    parts = Split(csvLine, ",")

    Debug.Print parts(0)   ' 山田
    Debug.Print parts(1)   ' 太郎
    Debug.Print parts(2)   ' 30
    Debug.Print parts(3)   ' 営業部

    ' 実務例:CSVの1行をセルに展開する
    Dim i As Integer
    For i = 0 To UBound(parts)
        Cells(1, i + 1).Value = parts(i)
    Next i
End Sub

SplitはCSVデータの解析・コンマ区切りリストの展開・メールアドレスのドメイン部分抽出など、データを配列に分解する処理で必須です。分割数を制限する3番目の引数(Limit)も使えます。

2-4. Join:配列を結合して1つの文字列にする

Sub JoinSample()
    Dim names() As String
    names = Array("山田", "佐藤", "田中", "鈴木")

    ' 読点で結合
    Debug.Print Join(names, "、")  ' 山田、佐藤、田中、鈴木

    ' スペースで結合
    Debug.Print Join(names, " ")   ' 山田 佐藤 田中 鈴木

    ' 実務例:複数のシート名をカンマ区切りで1つのセルに書き出す
    Dim sheetNames() As String
    ReDim sheetNames(Worksheets.Count - 1)
    Dim j As Integer
    For j = 0 To Worksheets.Count - 1
        sheetNames(j) = Worksheets(j + 1).Name
    Next j
    Range("A1").Value = Join(sheetNames, ", ")
End Sub
💡 Split + Join の組み合わせ活用

SplitとJoinを組み合わせると、「CSVデータの特定列を整形してから再結合する」という処理が1マクロで完結します。例えば「氏名をスペース区切りで分割→苗字だけ取り出す→別のシートに書き出す」という流れが、10行以内のVBAで実現できます。

03 文字列の抽出・挿入(Left・Mid・Right) 先頭・中間・末尾から任意の文字数を取り出す必須3関数

Left・Mid・Rightは、文字列から一部を切り出す3つの関数です。電話番号のハイフン除去・郵便番号の整形・日付文字列の年/月/日分離など、業務データの整形で非常に頻繁に使います。

3-1. Left:先頭から指定文字数を取り出す

Sub LeftSample()
    ' 郵便番号から上位3桁を取り出す
    Dim zip As String
    zip = "123-4567"
    Debug.Print Left(zip, 3)    ' 123

    ' 実務例:都道府県コード(最初の2文字)を取り出す
    Dim code As String
    code = "13東京都"
    Debug.Print Left(code, 2)   ' 13
End Sub

3-2. Right:末尾から指定文字数を取り出す

Sub RightSample()
    ' ファイル名から拡張子を取り出す
    Dim filename As String
    filename = "report2026.xlsx"
    Dim ext As String
    ext = Right(filename, 5)   ' .xlsx
    Debug.Print ext

    ' 実務例:電話番号の下4桁を取り出す
    Dim phone As String
    phone = "03-1234-5678"
    Debug.Print Right(phone, 4)  ' 5678
End Sub

3-3. Mid:中間の任意位置から指定文字数を取り出す

Sub MidSample()
    ' 郵便番号のハイフン後4桁を取り出す
    Dim zip As String
    zip = "123-4567"
    Debug.Print Mid(zip, 5, 4)   ' 4567
    ' Mid(文字列, 開始位置, 文字数)

    ' 実務例:「山田 太郎 (30歳)」から名前だけ抽出
    Dim info As String
    info = "山田 太郎 (30歳)"
    Dim nameEnd As Integer
    nameEnd = InStr(info, "(") - 2   ' 括弧の前の位置
    Dim name As String
    name = Left(info, nameEnd)
    Debug.Print Trim(name)  ' 山田 太郎
End Sub
関数構文用途実例
Left()Left(文字列, 文字数)先頭からN文字取り出すLeft("ABC",2) → "AB"
Right()Right(文字列, 文字数)末尾からN文字取り出すRight("ABC",2) → "BC"
Mid()Mid(文字列, 開始位置, 文字数)任意位置からN文字取り出すMid("ABCDE",2,3) → "BCD"
代表菅澤 代表菅澤
業務データの整形で「この列の3〜8文字目だけ抽出したい」という要件が出たとき、Midは必須です。Excelの関数MID()と名前は同じですが、VBAでは「Mid()」として使います。InStr()と組み合わせると「特定の記号の前後を取り出す」動的な処理も実現できます。
Claude Code 完全解説セミナー|経営者・会社役員専用 1on1 60分 無料Claude Codeを経営に活かしたい方へ — AI鬼管理

04 置換と削除(Replace・Trim・LTrim・RTrim) データクレンジングの要・余計な文字を除去する4関数

4-1. Replace:指定文字列を別の文字列で置換する

📚 用語解説

Replace関数:文字列の中の指定した文字列を、別の文字列に置き換えて返す関数。Excelの「検索と置換」をVBAで実行するのがReplace関数です。置換対象文字列を空文字("")にすれば、削除にも使えます。

Sub ReplaceSample()
    Dim text As String
    text = "山田 太郎 様"

    ' 「様」を削除(空文字に置換)
    Debug.Print Replace(text, " 様", "")   ' 山田 太郎

    ' 全角スペースを半角スペースに統一
    Dim dirty As String
    dirty = "東京都 新宿区"   ' 全角スペースが入っている
    Debug.Print Replace(dirty, " ", " ") ' 東京都 新宿区

    ' 実務例:電話番号のハイフンを除去
    Dim phone As String
    phone = "03-1234-5678"
    Debug.Print Replace(phone, "-", "")    ' 0312345678

    ' 実務例:改行コードを除去
    Dim multiline As String
    multiline = "1行目" & vbCrLf & "2行目"
    Debug.Print Replace(Replace(multiline, vbCrLf, " "), vbLf, " ")
End Sub

Replaceは、CSVデータのクレンジング・住所の表記ゆれ統一・電話番号の書式統一など、データの前処理で最も頻繁に使う関数です。置換対象を空文字にすることで削除としても使えるため、TrimとReplaceを組み合わせると、ほとんどのデータ整形ニーズをカバーできます。

4-2. Trim・LTrim・RTrim:前後のスペースを削除する

Sub TrimSample()
    Dim text As String
    text = "  山田 太郎  "  ' 前後にスペースがある

    Debug.Print Trim(text)     ' "山田 太郎"(前後のスペース除去)
    Debug.Print LTrim(text)    ' "山田 太郎  "(先頭のみ除去)
    Debug.Print RTrim(text)    ' "  山田 太郎"(末尾のみ除去)

    ' 実務例:入力フォームのデータを整形
    Dim userInput As String
    userInput = "   sugasawa@genai-ai.co.jp   "
    Dim cleanInput As String
    cleanInput = Trim(userInput)
    Debug.Print cleanInput     ' sugasawa@genai-ai.co.jp
End Sub

Trim・LTrim・RTrimは、フォームからの入力値や外部システムからのデータに含まれる余分なスペースを除去するためによく使います。特にTrimはExcelのワークシート関数TRIM()とは挙動が少し異なる点に注意が必要です。

⚠️ VBAのTrimとExcel関数TRIM()の違い

VBAのTrim()は文字列の「先頭と末尾のスペース」のみを除去します。一方、Excelのワークシート関数TRIM()は先頭・末尾に加えて「単語間の連続スペースを1つに圧縮」します。VBAで単語間の連続スペースも整理したい場合は、WorksheetFunction.Trim()を使うか、Replaceで対処します。

入力データ受信
フォーム/外部CSV/
コピペデータ
Trimでスペース除去
前後の余分な
スペースを削除
Replaceで整形
全角→半角/
ハイフン除去等
データ書き込み
クレンジング済みの
データをシートへ

05 変換関数(CStr・Val・LCase・UCase・Format・StrConv) 数値⇔文字列・大小文字・全半角・かなかなを自在に変換

変換関数は、データの型変換・表記統一・文字コード変換に使います。特に日本語データを扱う場合、全角・半角・ひらがな・カタカナの変換が頻繁に必要になります。

5-1. CStr・Val:数値と文字列の相互変換

Sub TypeConvertSample()
    ' 数値→文字列
    Dim num As Integer
    num = 12345
    Debug.Print CStr(num)              ' "12345"
    Debug.Print CStr(num) & "円"       ' "12345円"

    ' 文字列→数値
    Dim strNum As String
    strNum = "9800"
    Debug.Print Val(strNum) * 1.1      ' 10780(消費税込み計算)

    ' 実務例:セルの数値を文字列として扱う
    Dim cellVal As String
    cellVal = CStr(Range("B2").Value)
    Debug.Print Left(cellVal, 4)       ' 年を取り出す(例: "2026")
End Sub

5-2. LCase・UCase:大文字/小文字変換

Sub CaseSample()
    Dim text As String
    text = "Hello World VBA"

    Debug.Print LCase(text)   ' "hello world vba"(全て小文字)
    Debug.Print UCase(text)   ' "HELLO WORLD VBA"(全て大文字)

    ' 実務例:メールアドレスの大文字小文字を統一(比較前の正規化)
    Dim email1 As String, email2 As String
    email1 = "User@Example.COM"
    email2 = "user@example.com"
    If LCase(email1) = LCase(email2) Then
        Debug.Print "同じメールアドレスです"
    End If
End Sub

5-3. Format:書式を指定して文字列に変換する

Sub FormatSample()
    ' 数値を桁区切りで表示
    Debug.Print Format(1234567, "#,###")          ' "1,234,567"
    Debug.Print Format(1234567, "¥#,###円")       ' "¥1,234,567円"
    Debug.Print Format(0.15, "0.00%")             ' "15.00%"

    ' 日付を文字列に変換
    Debug.Print Format(Now(), "yyyy/mm/dd")       ' "2026/07/11"
    Debug.Print Format(Now(), "ggge年m月d日")     ' "令和8年7月11日"
    Debug.Print Format(Now(), "dddd")             ' "金曜日"

    ' 実務例:請求書の日付を和暦で表示
    Dim invoiceDate As Date
    invoiceDate = #7/31/2026#
    Range("A1").Value = Format(invoiceDate, "令和e年m月d日")
End Sub

📚 用語解説

Format関数:数値・日付・文字列を指定した書式で文字列に変換するVBAの万能変換関数。「#,###」(桁区切り)・「yyyy/mm/dd」(日付書式)・「0.00%」(パーセント表示)など豊富な書式文字列で細かい表示制御ができます。請求書・帳票・レポート作成で頻繁に使います。

5-4. StrConv:全角・半角・ひらがな・カタカナを変換する

Sub StrConvSample()
    Dim text As String
    text = "ABC123"   ' 全角文字

    ' 全角→半角
    Debug.Print StrConv(text, vbNarrow)    ' "ABC123"(半角)

    ' 半角→全角
    Dim narrow As String
    narrow = "ABC123"
    Debug.Print StrConv(narrow, vbWide)   ' "ABC123"(全角)

    ' カタカナ→ひらがな
    Dim katakana As String
    katakana = "アイウエオ"
    Debug.Print StrConv(katakana, vbHiragana)  ' "あいうえお"

    ' ひらがな→カタカナ
    Dim hiragana As String
    hiragana = "あいうえお"
    Debug.Print StrConv(hiragana, vbKatakana)  ' "アイウエオ"

    ' 先頭文字を大文字に
    Debug.Print StrConv("hello world", vbProperCase)  ' "Hello World"
End Sub
StrConvの定数変換内容主な用途
vbNarrow全角→半角DBへの格納前の正規化
vbWide半角→全角印刷用の表示整形
vbKatakanaひらがな→カタカナフリガナの統一
vbHiraganaカタカナ→ひらがな読み仮名の統一
vbUpperCase全て大文字英語データの正規化
vbLowerCase全て小文字メールアドレスの正規化
vbProperCase先頭のみ大文字氏名・単語の整形
AI鬼管理山崎 AI鬼管理山崎
弊社のCRMデータ整形でも、顧客名のひらがな→カタカナ変換やメールアドレスの小文字統一は毎月の作業です。StrConvを使えばこの処理が1行で完結するので、データクレンジングの生産性が大きく上がります。

06 比較(StrComp・Like演算子) 単純な等値比較から、あいまい検索まで対応する

6-1. StrComp:文字列の比較結果を数値で受け取る

📚 用語解説

StrComp関数:2つの文字列を比較して「-1(左辺が小さい)・0(等しい)・1(右辺が小さい)」を返す関数。三番目の引数でバイナリ比較(大文字小文字区別)かテキスト比較(大文字小文字無視)かを指定できます。

Sub StrCompSample()
    Dim result As Integer

    ' 大文字小文字を区別(vbBinaryCompare)
    result = StrComp("Hello", "hello", vbBinaryCompare)
    Debug.Print result     ' -1(異なる)

    ' 大文字小文字を無視(vbTextCompare)
    result = StrComp("Hello", "hello", vbTextCompare)
    Debug.Print result     ' 0(等しい)

    ' 実務例:商品名の重複チェック
    Dim name1 As String, name2 As String
    name1 = "Claude Code"
    name2 = "claude code"
    If StrComp(name1, name2, vbTextCompare) = 0 Then
        Debug.Print "同じ商品名(大文字小文字無視)"
    End If
End Sub

6-2. Like演算子:パターンマッチングで文字列を検索する

Sub LikeSample()
    Dim email As String
    email = "user@example.com"

    ' @を含むメールアドレス形式かチェック
    If email Like "*@*.*" Then
        Debug.Print "メールアドレス形式"
    End If

    ' 先頭が数字3桁のコードかチェック
    Dim code As String
    code = "123-ABC"
    If code Like "###-???" Then
        Debug.Print "正しいコード形式"
    End If

    ' 実務例:特定のパターンの顧客番号を選別
    Dim custNo As String
    For Each cell In Range("A2:A100")
        custNo = CStr(cell.Value)
        If custNo Like "T????-*" Then   ' Tから始まる5文字-で始まるコード
            cell.Interior.Color = RGB(255, 255, 0)  ' 黄色ハイライト
        End If
    Next
End Sub

Like演算子のワイルドカードは「*(任意の文字列)」「?(任意の1文字)」「#(任意の数字1桁)」の3種類です。Excelの「*」ワイルドカード検索と同じ感覚で使えるため、業務データのパターンマッチングに重宝します。

Claude Code 完全解説セミナー|経営者・会社役員専用 1on1 60分 無料Claude Codeを経営に活かしたい方へ — AI鬼管理

07 実務でよく使うVBAマクロ10パターン そのままコピーして使える実用マクロ集

ここまでの関数を組み合わせた、実務でそのまま使えるVBAマクロ10パターンを紹介します。コードをコピーしてVBAエディターに貼り付け、Excelのシートに合わせて列名を修正するだけで使えます。

7-1. メールアドレスの小文字統一

Sub NormalizeEmails()
    Dim lastRow As Long
    lastRow = Cells(Rows.Count, "A").End(xlUp).Row

    Dim i As Long
    For i = 2 To lastRow
        Dim email As String
        email = Trim(LCase(CStr(Cells(i, 1).Value)))
        Cells(i, 1).Value = email
    Next i
    MsgBox "メールアドレスの正規化が完了しました"
End Sub

7-2. 電話番号のハイフン除去と11桁統一

Sub NormalizePhone()
    Dim lastRow As Long
    lastRow = Cells(Rows.Count, "B").End(xlUp).Row

    Dim i As Long
    For i = 2 To lastRow
        Dim phone As String
        phone = CStr(Cells(i, 2).Value)
        ' ハイフン・スペース・括弧を除去
        phone = Replace(Replace(Replace(Replace(phone, "-", ""), " ", ""), "(", ""), ")", "")
        Cells(i, 2).Value = phone
    Next i
End Sub

7-3. 氏名から敬称(様・御中)を除去する

Sub RemoveTitles()
    Dim cell As Range
    For Each cell In Range("C2:C" & Cells(Rows.Count, "C").End(xlUp).Row)
        Dim name As String
        name = Trim(cell.Value)
        ' 敬称を除去
        name = Replace(name, " 様", "")
        name = Replace(name, "様", "")
        name = Replace(name, " 御中", "")
        name = Replace(name, "御中", "")
        cell.Value = Trim(name)
    Next cell
End Sub

7-4. CSVの1列を複数列に展開する

Sub SplitCSVColumn()
    Dim lastRow As Long
    lastRow = Cells(Rows.Count, "A").End(xlUp).Row

    Dim i As Long
    For i = 2 To lastRow
        Dim csvData As String
        csvData = CStr(Cells(i, 1).Value)
        Dim parts() As String
        parts = Split(csvData, ",")

        Dim j As Integer
        For j = 0 To UBound(parts)
            Cells(i, j + 2).Value = Trim(parts(j))
        Next j
    Next i
End Sub

7-5. 全角カタカナを半角カタカナに変換する

Sub ConvertKatakana()
    Dim cell As Range
    For Each cell In Selection   ' 選択したセル全体に適用
        If Not IsEmpty(cell) Then
            cell.Value = StrConv(CStr(cell.Value), vbNarrow)
        End If
    Next cell
    MsgBox "全角→半角変換完了"
End Sub
マクロ名用途主な関数
NormalizeEmailsメールアドレス小文字統一LCase, Trim
NormalizePhone電話番号ハイフン除去Replace
RemoveTitles敬称除去Replace, Trim
SplitCSVColumnCSV列展開Split
ConvertKatakana全角→半角変換StrConv
代表菅澤 代表菅澤
「このマクロ、業務でそのまま使えます」というものを選びました。毎月のデータ整理作業で手作業でやっている内容が、これらのマクロで自動化できます。特に「メールアドレス小文字統一」と「電話番号ハイフン除去」は、顧客データ管理をしている会社なら必ず使います。

08 【独自】Claude CodeでVBAコードを自動生成する方法 「やりたいこと」を日本語で伝えるだけで、VBAコードが完成する

ここまでVBAの文字列操作関数を詳しく解説してきました。しかし実際の業務では、「この関数を使えばいい」と分かっても「具体的なコードをどう書けばいいか分からない」という壁にぶつかることも多いはずです。

この章では、Claude Codeを使って「やりたいこと」を日本語で説明するだけでVBAコードを自動生成する方法を紹介します。コーディングの知識がなくても、AIがVBAを書いてくれる時代が来ています。

8-1. Claude CodeへのVBA生成指示の書き方

Claude Codeに以下のような形式で指示を投げると、動作するVBAコードを生成してくれます。

【Claude Codeへの指示例(そのままコピーして使えます)】

「Excelの A列(A2からA1000まで)に入力された顧客名から、
末尾の「様」「御中」「先生」などの敬称を除去するVBAマクロを書いてください。
以下の条件を満たすこと:
- スペース+敬称(「 様」「 御中」)にも対応する
- Trim()で前後のスペースも除去する
- 処理が完了したらメッセージボックスで「完了しました」と表示する
- エラーが発生してもマクロが止まらないようにエラーハンドリングを入れる」

このように「何をしたいか・対象範囲・追加条件」を具体的に書くと、Claude CodeはそのままExcelのVBAエディターにコピペして実行できるコードを出力します。

8-2. 既存VBAコードのデバッグ・改善

すでに動いているVBAコードを渡して、「これが動かない理由を教えて」「こんな機能を追加して」と指示することもできます。

【既存コードの修正依頼例】

「以下のVBAコードを修正してください。
現在の問題:電話番号が「0312345678」(ハイフンなし)の場合は
処理できるが、「03(1234)5678」のように括弧が混じっている場合に
エラーになります。括弧にも対応するよう修正してください。

(ここに現在のVBAコードを貼り付ける)」
やりたいことを
日本語で書く

条件・範囲・
特殊ケースを明記
Claude Codeに
貼り付ける

コードを
自動生成
VBAエディターに
コピペ

Alt+F11で
開いてペースト
動作確認・
改善指示

不足があれば
追加指示で修正

8-3. Claude Codeでできる他のExcel業務自動化

✔️データクレンジングマクロ:「A〜E列のデータを整形して、空白行を削除して別シートに出力するマクロを作って」
✔️レポート自動生成:「売上データから月次集計表を作成して、グラフも自動生成するマクロを書いて」
✔️メール自動送信:「OutlookとVBAを連携して、顧客リストの各人にカスタマイズメールを自動送信するマクロを作って」
✔️ファイル操作自動化:「フォルダ内の全Excelファイルを開いて特定のシートを1つのブックに集約するマクロを作って」
✔️API連携:「VBAからHTTP GETリクエストを送って、JSONの結果をExcelシートに書き込むコードを作って」

Claude CodeはProプラン(月$20≒3,000円)から利用できます。VBAの知識がゼロでも、業務効率化したい業務を日本語で伝えるだけでコードが生成されるという体験は、一度試すと「もうVBAを手で書かなくていい」と感じるレベルです。

🏆
VERDICT
Claude Code に軍配
VBAを手書きするより、Claude Codeで日本語指示→コード生成→コピペの方が10倍速い。月3,000円で全Excel作業の自動化パートナーが手に入る。
代表菅澤 代表菅澤
「VBAが分からないから業務自動化を諦めていた」という方に使ってほしいのがClaude Codeです。弊社でも非エンジニアのスタッフが「このExcel作業、自動化できる?」とClaude Codeに投げて、5分でVBAマクロが完成するという日常が当たり前になっています。

09 まとめ|VBA文字列操作関数チートシート 全15関数を1枚で把握できる早見表

この記事では、VBAの文字列操作関数を全15種類、実例コード付きで解説しました。最後に全関数を1枚のチートシートにまとめます。

関数/演算子用途よく使う組み合わせ
Len()文字列の長さ取得Len + If で文字数バリデーション
InStr()文字列内の位置検索InStr + Mid で動的抽出
Left()先頭からN文字取得Left + Len で右側除去
Mid()指定位置からN文字取得Mid + InStr で動的位置抽出
Right()末尾からN文字取得Right + Len で拡張子取得
Replace()文字列の置換・削除Replace(x, char, "")で削除
Trim/LTrim/RTrimスペース除去Trim + Replace でデータ整形
Split()文字列を配列に分割Split + For Each でCSV解析
Join()配列を文字列に結合Join(Array(...), ",")でCSV生成
CStr()数値→文字列変換CStr + Left で年抽出
Val()文字列→数値変換Val + 計算で数値処理
LCase/UCase大文字小文字変換LCase + = で大文字小文字無視比較
Format()書式付き文字列変換Format(date,"yyyy/mm/dd")
StrConv()全半角・かなかな変換StrConv(x, vbNarrow)で全→半
StrComp()文字列の大小比較StrComp(a,b,vbTextCompare)=0で等値確認
✔️Len・InStr・Left/Mid/Right・Split/Joinで「文字列の切り出しと整理」はカバーできる
✔️Replace + Trim の組み合わせが「データクレンジング」の基本形
✔️StrConv で日本語の全角半角・かなかな変換も1行で完結
✔️Format で数値・日付を業務帳票に合わせた書式に変換できる
✔️Claude Codeに日本語で指示するだけでVBAコードが自動生成される

Excel業務の「あの面倒な作業」をVBAとClaude Codeで自動化しませんか?

毎月繰り返しているExcelデータ整形・レポート作成・メール送信。
Claude Codeを使って自動化する具体的な方法を、無料相談でご提案します。

AI鬼管理山崎 AI鬼管理山崎
「VBAが分からないから諦めていた」という業務こそ、Claude Codeで解決できます。「何を自動化したいか」を教えていただければ、弊社のノウハウで最速の自動化方法をご提案します。

NEXT STEP

この記事の内容を、あなたのビジネスで
実践してみませんか?

AI活用を自社で回せるようになりたい方へ

AI鬼管理

Claude Code・Cowork導入支援から業務設計・社内浸透まで実践ベースで伴走。「自社で回せる組織」を90日で作る経営者向けトレーニング。

よくある質問

Q. VBAのTrimとExcelのTRIM関数は同じですか?

A. 動作が異なります。VBAのTrim()は文字列の先頭と末尾のスペースのみを除去します。ExcelのワークシートTRIM()関数は先頭・末尾のスペース除去に加え、文字列中の連続スペースを1つに圧縮します。VBAで単語間の連続スペースも圧縮したい場合はWorksheetFunction.Trim()を使うか、Replaceを組み合わせて対処します。

Q. Replaceで複数の文字を一度に置換できますか?

A. 1回のReplace()は1種類の文字列しか置換できませんが、Replaceを入れ子にすることで複数の置換を連続して行えます。例えば「電話番号のハイフン・スペース・括弧を全て除去」なら、Replace(Replace(Replace(phone, "-", ""), " ", ""), "(", "") のように記述します。

Q. Splitで分割した結果の要素数はどうやって取得しますか?

A. UBound(配列名)で最後のインデックスを取得します。要素数はUBound(配列名) + 1です。例えばSplit("A,B,C", ",")の結果はインデックス0〜2の3要素なので、UBound(parts)は2、要素数は3になります。

Q. StrConvでひらがなとカタカナを相互変換できますか?

A. できます。StrConv(text, vbKatakana)でひらがな→カタカナ、StrConv(text, vbHiragana)でカタカナ→ひらがなに変換されます。ただし、半角カタカナは変換されない場合があるため、先にStrConv(text, vbWide)で全角に変換してからかな変換を行うのが確実です。

Q. Claude CodeはVBA以外のOffice自動化にも対応していますか?

A. はい、対応しています。ExcelVBAだけでなく、Word VBA(文書の自動生成・書式設定)・Access VBA(データベース操作)・Outlook VBA(メール自動送信)・PowerPoint VBA(スライド自動生成)など、Office製品全般のVBAコードをClaude Codeで自動生成できます。「このOffice業務を自動化したい」という要件を日本語で伝えるだけです。

Q. VBAのコードをClaude Codeで修正してもらうにはどうすればいいですか?

A. Claude Code(Pro $20/月以上)を開いて、「以下のVBAコードを修正してください。問題点:〇〇の部分が△△のときにエラーになります」という形式で、エラーの内容と現在のコードを貼り付けるだけです。Claude Codeはコードを読んで問題箇所を特定し、修正版のコードを提案してくれます。

Q. Format関数で和暦(令和)形式の日付を出力できますか?

A. できます。Format(date, "ggge年m月d日")で「令和8年7月11日」のような和暦表示が可能です。「gg」は元号(令和)、「e」は元号年を表します。ただし、システムの日本語ロケール設定が必要です。日付を和暦で扱う帳票・請求書・官公庁向け書類の作成で頻繁に使います。

AIAI鬼管理

AI鬼管理へのお問い合わせ

この記事を読んで気になった方へ。
AI鬼管理の専門スタッフが、御社に最適な
業務自動化プランを無料でご提案します。

会社名を入力してください
業種を選択してください
お名前を入力してください
正しいメールアドレスを入力してください

1つ以上選択してください
1つ以上選択してください
月額コストを選択してください

約1時間のオンライン面談(Google Meet)です

空き枠を取得中...
面談日時を選択してください

予約確定後、Google Calendarの招待メールをお届けします。
しつこい営業は一切ございません。

監修 最終更新日: 2026年7月11日
菅澤孝平
菅澤 孝平 株式会社GENAI 代表取締役
  • AI業務自動化サービス「AI鬼管理」を運営 — Claude Code を活用し、経営者の業務を「AIエージェントに任せる仕組み」へ転換するパーソナルトレーニングを 伴走構築 で提供。日報・採用・問い合わせ対応・経費精算・議事録・データ集計・営業リスト等の定型業務を、AIに代行させる体制を経営者と一緒に作り込む
  • Claude Code 実装ノウハウを 経営者・法人クライアント に直接指導。生成AIを「便利ツール」ではなく 「業務を任せる存在」 として運用する手法を体系化
  • 「やらせ切る管理」メソッドの開発者。シンゲキ株式会社(2021年設立・鬼管理専門塾運営)にて累計3,000名以上の学習者を志望校合格に導いた管理メソッドを、AI × 経営者支援 に転用
  • 著書『3カ月で志望大学に合格できる鬼管理』(幻冬舎)、『親の過干渉こそ、最強の大学受験対策である。』(講談社)
  • メディア出演: REAL VALUE / カンニング竹山のイチバン研究所 / ええじゃないかBiz 他
  • 明治大学政治経済学部卒
現在は AI鬼管理(Claude Code活用の伴走型パーソナルトレーニング)を主事業とし、経営者と二人三脚で「AIに業務を任せる仕組み」を実装。「実行を強制する環境」を AI で構築する手法を、自社の実運用知見をもとに発信している。