VBA 文字列の全角変換
以前、PowerPoint文書テキストのフォントを一括変更するツールの記事「VBA PowerPoint文書フォント変更(ツール添付)」を掲載しました。
そのツールを使用されている方から、PowerPoint文書中の半角文字のカタカナを全角文字に変換するツールがあると便利そうですね、というリクエストを頂きました。半角カタカナは、フォントの横幅が小さく文字数を稼げるのですが、全角文字に比べると少し読みづらいし、体裁もあまりよくないので全角に揃えたいというのが理由のようです。
カタカナ以外の英字や数字も全角/半角変換ができると便利そうです。最終的には上記のフォント変更ツールと同様に、Excelファイルに組み込んだVBAプログラムから、PowerPoint文書テキストの全角/半角を変換するツールを作成しようと思いますが、まずはテスト用文字列を全角に変換する処理をExcel上で作成してみます。
新規ブック作成
まずは、「01.新規ブック作成」記事を参考にしながら、Excelの新規ブックを作成します。ファイル名は「test.xlsm」とします。
文字列の全角変換処理の作成
「開発」タブの「Visual Basic」を選択して、「Visual Basic Editor」(以降VBEと略す)を開きます。(Alt+F11キーでも開けます)
プロジェクトエクスプローラーで、「Sheet1 (Sheet1)」をダブルクリックして、Sheet1モジュールを開きます。
そして、次のプログラムをSheet1モジュールに書き込みます。
Option Explicit
Public Sub test1()
Dim sText As String
sText = Range("B2").Value
Range("B4").Value = StrConv(sText, vbWide)
End Sub
プログラム内容は、B2セルに設定された文字列を取り出し、StrConv関数を利用して全角文字に変換したうえで、B4セルに設定するというもの。
動作確認
Sheet1シートのB2セルに適当な半角文字を含んだ文字列を設定したうえで、プログラムを実行します。
ここでは例として次のような文字列をB2セルに設定しました。
Mexico産のアップルマンゴーが、2コで532円です。
プログラムの実行は、「開発」タブの「マクロ」を選択して表示されるマクロダイアログで、マクロ名:Sheet1.test1を選択して「実行」ボタンをクリックすることで実行します。
実行結果は次のようになり、文字列中の全ての半角文字が全角文字に変換されます。
文字列全体をStrConvで全角変換しているので予想通りの結果ですが、最終的なツールとしては、カタカナは全角、英数字は半角に変換など、文字種別に変換内容を個別指定できるようにしたいと考えています。