半角カナのみ全角カナに変換する
テーマ:■エクセルVBA Tips集半角カナのみ全角カナに変換します。
ネットを探してみたところ、あるにはあるのですが、どうも中途半端。
直ぐに使えて、汎用性のあるプログラムが見つからなかったので、作ってみました。
ではプログラムです。
Sub sample() Dim objRange As Range For Each objRange In ActiveSheet.UsedRange Call 半角カナto全角カナ(objRange) Next End Sub |
Private Sub 半角カナto全角カナ(ByRef objRange As Range) Dim i As Integer |
Sub sample()
は、起動するマクロになります。
この部分で、セル範囲を変更することで、いろいろと対応出来るはずです。
Private Sub 半角カナto全角カナ(ByRef objRange As Range)
実際に、全角変換しているモジュールです。
引数をRangeオブジェクトにしています。
Value値だけでは、その後の判定ができません。
objRange.HasFormula
数式の設定されているセルの判定です。
VarType(objRange.Value) <> vbString
値が、文字列かどうかの判定です。
Asc(Mid(strIn, i, 1)) >= 161 And Asc(Mid(strIn, i, 1)) <= 223
半角カナ文字の判定です、カナ記号も含めています。
プログラム中のコメントにもありますが、
カナ記号(。「」、・)を除く場合は、166(ヲ)~として下さい。
StrConv(strKana, vbWide)
全角変換です。
この、vbWideを変更することで、ひらがなに変換したりすることができます。
これなら文句ないでしょう。
きっちり、半角カナのみ変換しています。
数式の判定と、連続しているカナ文字をまとめて変換していますので。
ネットで探してみたところ、みかけたものには、数式の判定をしていない為に、
実行したら、計算式が全部なくなってしまったりするものがあります。
また、あまり無いとは思いますが、
カナ文字の判定に不備があり、「パ゚」などの場合は、2つ目の「゚」が変換されなかったりしています。
このプログラムなら、コピペして、起動のプロシージャーだけ直せば、どこでも使用可能です。
同じテーマの最新記事
- Beep音で音楽 02月27日
- カラーのコード取得、256RGB⇔16… 02月27日
- ユーザー定義関数 08月03日
- 最新の記事一覧 >>