【2026年7月最新】VBA文字列操作完全マスター|追加・削除・変換・比較とClaude Code自動化術
この記事の内容
「VBAで文字列をうまく操作したい」「どの関数を使えばいいか分からない」——Excelマクロを業務で使い始めると、必ず文字列操作の壁にぶつかります。
VBAには文字列を扱う関数が20種類以上あり、「長さを測る」「特定の文字を置換する」「文字列を分割する」「大文字小文字を統一する」など、それぞれの用途ごとに専用関数が用意されています。これを体系的に理解することで、毎日手作業でやっているExcel作業の大半を数十行のVBAで自動化できます。
この記事では、VBAの文字列操作関数を用途別に分類して全15関数を実例コード付きで解説します。さらに後半では、Claude Codeを使ってVBAコードを自然言語で自動生成する方法も紹介します。「VBAのコードを書けなくても、AIに書いてもらえる時代」の活用法もぜひ参考にしてください。
この記事を読むと以下が分かります。
01 FUNCTION OVERVIEW 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(結合)」の順で覚えると実務ですぐ使えます。
Excelを開いて「Alt + F11」キーを押すとVBAエディター(Visual Basic Editor)が起動します。「挿入」→「標準モジュール」でコードを書くスペースが作られます。この記事のコードをそのままコピーして貼り付け、F5で実行できます。
02 LENGTH & SEARCH 文字列の長さ・検索・結合・分割(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を組み合わせると、「CSVデータの特定列を整形してから再結合する」という処理が1マクロで完結します。例えば「氏名をスペース区切りで分割→苗字だけ取り出す→別のシートに書き出す」という流れが、10行以内のVBAで実現できます。
03 EXTRACT 文字列の抽出・挿入(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" |
04 REPLACE & TRIM 置換と削除(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()は先頭・末尾に加えて「単語間の連続スペースを1つに圧縮」します。VBAで単語間の連続スペースも整理したい場合は、WorksheetFunction.Trim()を使うか、Replaceで対処します。
フォーム/外部CSV/
コピペデータ
前後の余分な
スペースを削除
全角→半角/
ハイフン除去等
クレンジング済みの
データをシートへ
05 CONVERT 変換関数(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 | 先頭のみ大文字 | 氏名・単語の整形 |
06 COMPARE 比較(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の「*」ワイルドカード検索と同じ感覚で使えるため、業務データのパターンマッチングに重宝します。
07 PRACTICAL MACROS 実務でよく使う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 |
| SplitCSVColumn | CSV列展開 | Split |
| ConvertKatakana | 全角→半角変換 | StrConv |
08 CLAUDE CODE VBA 【独自】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コードを貼り付ける)」
日本語で書く
条件・範囲・
特殊ケースを明記
貼り付ける
コードを
自動生成
コピペ
Alt+F11で
開いてペースト
改善指示
不足があれば
追加指示で修正
8-3. Claude Codeでできる他のExcel業務自動化
Claude CodeはProプラン(月$20≒3,000円)から利用できます。VBAの知識がゼロでも、業務効率化したい業務を日本語で伝えるだけでコードが生成されるという体験は、一度試すと「もうVBAを手で書かなくていい」と感じるレベルです。
09 SUMMARY まとめ|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で等値確認 |
Excel業務の「あの面倒な作業」をVBAとClaude Codeで自動化しませんか?
毎月繰り返しているExcelデータ整形・レポート作成・メール送信。
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」は元号年を表します。ただし、システムの日本語ロケール設定が必要です。日付を和暦で扱う帳票・請求書・官公庁向け書類の作成で頻繁に使います。
Claude Codeで業務自動化を90日で叩き込む
経営者向けの伴走型パーソナルトレーニング
Claude Code を業務に落とし込む
専門研修コース一覧
受講者本人の業務を題材に、「使いこなせる」状態になるまで伴走する研修プログラム。1対1特化型・ハンズオン・法人講座の3コースを展開中。業務特化・実装まで踏み込むタイプのClaude Code研修です。
研修コース一覧を見る →AI鬼管理へのお問い合わせ
この記事を読んで気になった方へ。
AI鬼管理の専門スタッフが、御社に最適な
業務自動化プランを無料でご提案します。




