1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Excel VBA】StrConv関数|文字列を大文字⇔小文字、全角⇔半角に変換する方法と注意点

Last updated at Posted at 2025-08-20

この記事ではStrConv関数の使い方と注意点について解説します。
他のよく使うVBA関数一覧はこちら。

StrConv関数の使い方と注意点

StrConv関数は、文字列を指定した形式に変換するための関数です。
大文字・小文字変換、カタカナ⇔ひらがな変換、全角⇔半角変換などを簡単に行えます。

構文

StrConv(文字列, 変換種類 [, ロケールID])
  • 文字列 : 変換対象の文字列
  • 変換種類: どのように変換するかを指定する定数
  • ロケールID(省略可): 変換に使用する国や地域の識別子。通常は省略でOK。
  • 戻り値 : 変換後の文字列

変換の種類

定数値 内容
vbUpperCase 1 英字をすべて大文字に変換
vbLowerCase 2 英字をすべて小文字に変換
vbProperCase 3 単語の先頭文字を大文字に変換
vbWide 4 半角文字を全角に変換
vbNarrow 8 全角文字を半角に変換
vbKatakana 16 ひらがなをカタカナに変換
vbHiragana 32 カタカナをひらがなに変換
vbUnicode 64 Unicode文字列に変換
vbFromUnicode 128 Unicodeから変換(環境依存)

使用例

英字をすべて大文字に変換

Sub Sample()
    Dim text As String
    text = "sample text"
    Debug.Print StrConv(text, vbUpperCase)
End Sub

▶ 出力結果

SAMPLE TEXT

英字をすべて小文字に変換

Sub Sample()
    Dim text As String
    text = "Sample Text"
    Debug.Print StrConv(text, vbLowerCase)
End Sub

▶ 出力結果

sample text

単語の先頭を大文字に変換

Sub Sample()
    Dim text As String
    text = "sample text"
    Debug.Print StrConv(text, vbProperCase)
End Sub

▶ 出力結果

Sample Text

全角 ⇔ 半角変換

Sub Sample()
    Dim text1 As String
    text = "123ABCabc"     ' 全角
    Debug.Print StrConv(text, vbNarrow) ' 全角→半角

    Dim text2 As String
    text2 = "123ABCabc"     ' 半角
    Debug.Print StrConv(text2, vbWide) ' 半角→全角
End Sub

▶ 出力結果

123ABCabc
123ABCabc

ひらがな ⇔ カタカナ変換

Sub Sample()
    Dim text1 As String
    text = "さんぷる"     ' ひらがな
    Debug.Print StrConv(text, vbKatakana) ' ひらがな→カタカナ

    Dim text2 As String
    text2 = "サンプル"     ' カタカナ
    Debug.Print StrConv(text2, vbHiragana) ' カタカナ→ひらがな
End Sub

▶ 出力結果

サンプル
さんぷる

vbUnicode/vbFromUnicodeの使用例

Sub Sample()
    Dim text As String
    text = "ABC"
    
    ' Unicode 文字列に変換
    Debug.Print StrConv(text, vbUnicode)
    
    ' Unicode から変換(環境依存)
    Debug.Print StrConv(StrConv(text, vbUnicode), vbFromUnicode)
End Sub

▶ 出力結果(環境により出力結果に差が出る場合もあります)

A B C 
ABC

vbUnicodeとvbFromUnicodeは通常のVBA開発ではあまり使用しません。
文字コードの変換を直接扱う特殊用途(外部ファイルとのやり取り等)に利用されます。

複数の変換を同時に行いたい場合

Or演算子を使って組み合わせ可能です。

例:ひらがなを半角カタカナに変換

Sub Sample()
    Dim text As String
    text = "ひらがな"
    Debug.Print StrConv(text, vbKatakana Or vbNarrow)
End Sub

▶ 出力結果

ヒラガナ

⚠️注意

日本語に対する大文字・小文字変換の挙動

日本語部分には変化がなく、英字部分のみが対象になります。

Sub Sample()
    Dim text As String
    text = "VBA テスト abcABC"
    
    Debug.Print StrConv(text, vbUpperCase) ' 大文字に変換
    Debug.Print StrConv(text, vbLowerCase) ' 小文字に変換
    Debug.Print StrConv(text, vbProperCase) ' 単語の先頭を大文字に変換
End Sub

▶ 出力結果

VBA テスト ABCABC
vba テスト abcabc
Vba テスト Abcabc

日本語環境以外では一部の変換が使えない

vbKatakanavbHiraganaなどは、日本語環境のVBAでのみ有効です。
海外版Excelでは期待通り動作しない場合があります。

vbProperCaseは英単語向け

vbProperCaseは単語の先頭を大文字に変換しますが、日本語の文章では意味がありません。
また、省略記号や略語の変換は意図しない結果になることがあります。

その他のVBA関数

【Excel VBA】VBAでよく使う関数一覧&基本の使い方

参考リンク

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?