日本語のみ全角化

1年半ほど前に、このような記事を書いた。
infoment.hatenablog.com

書いた時は「ある特殊な条件下で」としたが、汎用的に出来そうな方法を思いついたので、忘れないうちに記事化しておく。
f:id:Infoment:20200104180102p:plain

前回述べた「特殊な条件」とは、下記のとおり。

  1. ふりがなの設定が「全角カタカナ」であること。
  2. 全角化したい文字が入力されたセルに、ふりがな情報が無いこと。

しかし考えてみれば、上記条件をマクロで実現すれば、特殊な条件を気にする必要はなくなる訳で。

例えば、こんな感じだ。
f:id:Infoment:20200104180443p:plain

Sub Test()
    ' 変換前のセル。
    Dim SourceRange As Range
    Set SourceRange = Range("B1")
    
    ' 変換後の文字入力セル。
    Dim TargetRange As Range
    Set TargetRange = Range("B2")
    ' フリガナをカタカナに設定。
        TargetRange.Phonetic.CharacterType = xlKatakana

    ' 変換後の文字入力セルに、変換前の文字を半角化してセット。
    ' このときフリガナ情報はセットされていないことがポイント。
        TargetRange = StrConv(SourceRange.Value, vbNarrow)
    ' 変換後の文字のフリガナをセット。
    ' フリガナ情報がないため、半角カナが全角カナでセットされる。
        TargetRange = TargetRange.Phonetic.Text
    
    ' 変換後のセルに、変換前のフリガナを移植。
        TargetRange.Characters.PhoneticCharacters = _
                SourceRange.Characters.PhoneticCharacters
End Sub

結果は、以下のとおり。
f:id:Infoment:20200104180715g:plain

データクレンジングなどで、今後役に立つかも。

参考まで。