- ベストアンサー
【VBA】半角カタカナのみを全角にするには?
- VBAで半角カタカナのみを全角にする方法について知りたいです。特定のコードを使用しているのですが、平仮名も全角カタカナに変換されてしまいます。どのようにすれば、平仮名をそのままにすることができるでしょうか?
- VBAを使用して、半角カタカナを全角に変換する方法を教えてください。現在、特定のコードを使用していますが、平仮名も全角カタカナに変換されてしまいます。平仮名をそのままにする方法はありますか?
- VBAで半角カタカナのみを全角に変換したいのですが、平仮名も全角カタカナに変換されてしまいます。平仮名をそのままにする方法はありますか?VBAの正規表現を使用していますが、正確な方法がわかりません。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは 質問がイマイチ良く分からないのですが、 Sub test() Dim myStr As String myStr = "あああガペヅイイイ" MsgBox Evaluate("DBCS(""" & myStr & """)") End Sub この程度じゃダメなのですか?
その他の回答 (1)
- Prome_Lin
- ベストアンサー率42% (201/470)
「正規表現」については、後述。 Public a この1行を、元の「Sub」プロシージャの上の行に追加してください。 Public a←この1行は、すべての「Sub」プロシージャの上の行です。 Sub Test() For i = 1 to 3 a = Cells(i, 1).Value Call k Cells(i + 4, 1).Value = a End Sub などと、お使いください。 「a」に入っている、すべての半角カタカナを全角カタカナにします。 Sub k() a = Replace(a, "ヴ", "ヴ") a = Replace(a, "ガ", "ガ") a = Replace(a, "ギ", "ギ") a = Replace(a, "グ", "グ") a = Replace(a, "ゲ", "ゲ") a = Replace(a, "ゴ", "ゴ") a = Replace(a, "ザ", "ザ") a = Replace(a, "ジ", "ジ") a = Replace(a, "ズ", "ズ") a = Replace(a, "ゼ", "ゼ") a = Replace(a, "ゾ", "ゾ") a = Replace(a, "ダ", "ダ") a = Replace(a, "ヂ", "ヂ") a = Replace(a, "ヅ", "ヅ") a = Replace(a, "デ", "デ") a = Replace(a, "ド", "ド") a = Replace(a, "バ", "バ") a = Replace(a, "ビ", "ビ") a = Replace(a, "ブ", "ブ") a = Replace(a, "ベ", "ベ") a = Replace(a, "ボ", "ボ") a = Replace(a, "パ", "パ") a = Replace(a, "ピ", "ピ") a = Replace(a, "プ", "プ") a = Replace(a, "ペ", "ペ") a = Replace(a, "ポ", "ポ") a = Replace(a, "ヲ", "ヲ") a = Replace(a, "ァ", "ァ") a = Replace(a, "ィ", "ィ") a = Replace(a, "ゥ", "ゥ") a = Replace(a, "ェ", "ェ") a = Replace(a, "ォ", "ォ") a = Replace(a, "ャ", "ャ") a = Replace(a, "ュ", "ュ") a = Replace(a, "ョ", "ョ") a = Replace(a, "ッ", "ッ") a = Replace(a, "ー", "ー") a = Replace(a, "ア", "ア") a = Replace(a, "イ", "イ") a = Replace(a, "ウ", "ウ") a = Replace(a, "エ", "エ") a = Replace(a, "オ", "オ") a = Replace(a, "カ", "カ") a = Replace(a, "キ", "キ") a = Replace(a, "ク", "ク") a = Replace(a, "ケ", "ケ") a = Replace(a, "コ", "コ") a = Replace(a, "サ", "サ") a = Replace(a, "シ", "シ") a = Replace(a, "ス", "ス") a = Replace(a, "セ", "セ") a = Replace(a, "ソ", "ソ") a = Replace(a, "タ", "タ") a = Replace(a, "チ", "チ") a = Replace(a, "ツ", "ツ") a = Replace(a, "テ", "テ") a = Replace(a, "ト", "ト") a = Replace(a, "ナ", "ナ") a = Replace(a, "ニ", "ニ") a = Replace(a, "ヌ", "ヌ") a = Replace(a, "ネ", "ネ") a = Replace(a, "ノ", "ノ") a = Replace(a, "ハ", "ハ") a = Replace(a, "ヒ", "ヒ") a = Replace(a, "フ", "フ") a = Replace(a, "ヘ", "ヘ") a = Replace(a, "ホ", "ホ") a = Replace(a, "マ", "マ") a = Replace(a, "ミ", "ミ") a = Replace(a, "ム", "ム") a = Replace(a, "メ", "メ") a = Replace(a, "モ", "モ") a = Replace(a, "ヤ", "ヤ") a = Replace(a, "ユ", "ユ") a = Replace(a, "ヨ", "ヨ") a = Replace(a, "ラ", "ラ") a = Replace(a, "リ", "リ") a = Replace(a, "ル", "ル") a = Replace(a, "レ", "レ") a = Replace(a, "ロ", "ロ") a = Replace(a, "ワ", "ワ") a = Replace(a, "ン", "ン") End Sub プログラムは、見て分かるように、極めて鈍くさいものですが、確実に変換してくれます。 さて「正規表現」ですが、極めて奥の深いもので、テキストエディタなどで使える場合があります。 例えば、「A-Z」の次の文字が「0~9」の場合を検索したい、とすると、「[A-Z][0-9]」となります。 上記の場合、文字列のどこに存在しても検索されます(「a;dkjaS6aldkaj」の「S6」)。 「先頭の」とか、「後ろから」とか、「[0-9]を含まない」とか、任意の1文字とか、スペースとか、何文字繰り返してもいい(例えば、スペースが1文字とは限らないような場合)、とか、いろいろな組み合わせがあり、詳しい解説書になると、数百ページに及ぶ本も出ているぐらい、奥深いもので、私も普段は、「外字の検索」(外字の範囲を上記のように指定して検索)ぐらいしか使いこなせていません。 しかし、これが理解できると、先ほどのプログラムなども、極端に簡単になるはずですが、理解できるまではあきらめて、上記のように、コツコツと、プログラムを組んで、対処しています。
お礼
ご回答ありがとうございました。
お礼
ご回答ありがとうございました。