半角を全角に変換したい場合はこちらをどうぞ
このまま読み進めていただいても、使う関数は同じで引数を変えるだけなのでわかると思いますが、サクッとコピペしたいかたはこちらをご覧ください。
【VBA】半角を全角に変換する
全角文字を半角文字に変換するにはStrConv関数を使う
参考 StrConv 関数MicrosoftStrConv(string、 Conversion、[ LCID ])
構文
| パーツ | 説明 |
|---|---|
| string | 必須。変換する文字列式です。 |
| conversion | 必須。 Integer。 実行する変換の種類を指定する値の合計値です。 |
| LCID | 省略可能。 LocaleID (システム LocaleID と異なる場合)。 (システムロケールは既定値です)。 |
Settings
| 定数 | 値 | 説明 |
|---|---|---|
| vbUpperCase | 1-d | 文字列を大文字に変換します。 |
| vbLowerCase | pbm-2 | 文字列を小文字に変換します。 |
| vbProperCase | 1/3 | 文字列内のすべての単語の最初の文字を大文字に変換します。 |
| vbWide | 4 | 文字列の半角 (1 バイト) 文字を全角 (2 バイト) 文字に変換します。 |
| vbNarrow | 8 | 文字列の全角 (2 バイト) 文字を半角 (1 バイト) 文字に変換します。 |
| vbKatakana | 16 | 文字列に含まれるひらがなの文字をカタカナに変換します。 |
| vbHiragana | 32 | 文字列のカタカナ文字をひらがなに変換します。 |
| vbUnicode | 64 | システムの既定のコードページを使用して、文字列をUnicodeに変換します。 (Macintosh では使用できません。) |
| vbFromUnicode | 128 | 文字列を Unicode からシステムの既定のコードページに変換します。 (Macintosh では使用できません。) |
選択したセルをすべて変換する
'---------------------------------------------------------------------------------------------------
'【処 理 名】全角⇒半角
'【処理概要】全角文字を半角文字に変換
'【引 数】なし
'【返 却 値】なし
'---------------------------------------------------------------------------------------------------
Public Sub convToNarrow()
Call StringConvert(vbNarrow)
End Sub
'---------------------------------------------------------------------------------------------------
'【処 理 名】初期処理
'【処理概要】初期設定を行う
'【引 数】なし
'【返 却 値】なし
'---------------------------------------------------------------------------------------------------
Private Sub init()
'画面の更新をストップする
Application.ScreenUpdating = False
'計算方式の設定を「手動」にする
Application.Calculation = xlCalculationManual
'ステータスバーに「...処理中」と表示する
Application.StatusBar = "...処理中"
End Sub
'---------------------------------------------------------------------------------------------------
'【処 理 名】終期処理
'【処理概要】後始末
'【引 数】なし
'【返 却 値】なし
'---------------------------------------------------------------------------------------------------
Private Sub term()
'計算方式の設定を「自動」にする
Application.Calculation = xlCalculationAutomatic
'画面の更新を戻す
Application.ScreenUpdating = True
'ステータスバーに表示していたステータスをクリアする
Application.StatusBar = False
End Sub
'---------------------------------------------------------------------------------------------------
'【処 理 名】文字変換
'【処理概要】文字を変換する
'【引 数】[I] ByVal prm As Long
'【返 却 値】なし
'---------------------------------------------------------------------------------------------------
Private Sub StringConvert(ByVal prm As Long)
Dim rng As Range
Call init
'選択されているすべてのセルを変換する
For Each rng In Selection
rng.Value = StrConv(rng.Value, prm)
Next rng
Call term
End Sub
アドイン化したものを配布しています
右クリックメニューを追加し、文字の変換あれこれをまとめてアドイン化したものを配布しています。
ご利用は自己責任でお願いいたします。
【VBA】セルの値をいろいろ変換するアドインの配布

