プロが教える店舗&オフィスのセキュリティ対策術

エクセルの文字列の置換ですが、
ひらがな全角文字からカタカナ半角文字への置換。
また、その逆にカタカナ半角からひらがな全角への置換。
方法があれば教えてください。

よろしくお願いいたします。

A 回答 (6件)

これはユーザ関数でないとできないと思います。

以下のマクロをALT+F11でVBE画面を開き、左上のVBA Projectでシート名を右クリックし「挿入」→「標準モジュール」で表示される画面に貼り付けて下さい

シートでこのように式として使用します
=KtoH(A1)  半角カタカナ→(全角)ひらがな
=HtoK(A1)  (全角)ひらがな→半角カタカナ

Function HtoK(ByVal trg As Range) As String
HtoK = StrConv(trg.Value, vbKatakana)
HtoK = StrConv(HtoK, vbNarrow)
End Function

Function KtoH(ByVal trg As Range) As String
KtoH = StrConv(trg.Value, vbWide)
KtoH = StrConv(KtoH, vbHiragana)
End Function
    • good
    • 2
この回答へのお礼

ユーザ関数は存在は知っていたのですが、まったく使ったことは無かったです。

この場合は、ユーザー定義関数がもっとも便利な気がします。

ありがとうございました。

お礼日時:2007/02/28 08:34

前半は前の質問に答えてしまった。

そちらを見てください。
後半は、VBEの標準モジュールに
Function wd(a)
wd = StrConv(StrConv(a, vbKatakana), vbWide)
End Function
で同じ例で
ハンナリハンナリ
ハンナリハンナリ
オカユガクイタイオカユガクイタイ
カンガエルトワカラナイカンガエルトワカラナイ
    • good
    • 0
この回答へのお礼

ご丁寧にすみません。
私が質問した時点では、まだimogasi様の回答を見ていない段階でしたので、二重の質問をしてしまいました。

大変参考になりました。

ありがとうこざいました。

お礼日時:2007/02/28 08:44

こんばんは。



回答ではないのですが、数字やアルファベットと混じったものの中から、それだけを取り出して「ひらがな全角~カナ半角 」相互置換だとしたら、もっと難しいマクロか、ユーザー定義関数になるはずですね。

それは、どうなんでしょうか?
    • good
    • 0
この回答へのお礼

私が知らない方法で、もっと簡単な方法があるのではと思いましたが、マクロか、ユーザー定義関数が必要なのですね。

一般的には使わない機能だからでしょうね。

ご親切にありがとうございました。

お礼日時:2007/02/28 08:37

A1に文字が入っており、B1に変換結果を表示するとすると、


=PHONETIC(A1)
とB1に入力し、A1セルを選択して「書式」>「ふりがな」>「設定」を選択し、「ひらがな」を選択するとB1の文字が全角ひらがなに、「半角カタカナ」を選択すると半角カタカナになります。

ただし、PHONETIC()関数はもともとふりがなを取得する関数なので、文字列に漢字が含まれていると、かなに変換されてしまいます。その場合はこの方法は使えないので、マクロを使います。

マクロで変換する方法ですが、Alt+F11でVBAの画面を開き、「挿入」>「標準モジュール」を選択して、右の画面に以下のマクロをコピーして貼り付けてください。

Sub 全角ひらがなに変換()
 Dim r As Range
 For Each r In Selection
  r.Value = StrConv(r.Value, vbWide + vbHiragana)
 Next
End Sub

Sub 半角カタカナに変換()
 Dim r As Range
 For Each r In Selection
  r.Value = StrConv(r.Value, vbNarrow + vbKatakana)
 Next
End Sub

VBAの画面を閉じ、Alt+F8からマクロを実行すると、選択されたセルの文字列がカタカナ半角/ひらがな全角へそれぞれ変換されます。
    • good
    • 0
この回答へのお礼

すごい。完璧ですね。

私も、昨晩、布団の中で、「=PHONETIC関数を使えばいいかも!」と思いつき、すぐに「漢字 かな交じり だったら漢字もカナになっちゃうからダメだ」とゲンナリしてしまいました。

すばらしいVBAコードを教えていただいてありがとうございました。

お礼日時:2007/02/28 08:31

JIS関数や ASC関数は、カタカナ→カタカナやその逆はできますが、


かたかな→カタカナ は出来ません。

ctrl+Hキーで一文字ずつ「あ」→「ア」とかやっていかないとだめかな???
    • good
    • 0
この回答へのお礼

ctrl+Hキーというのは知りませんでした。

勉強になりました。

ありがとうございました。

お礼日時:2007/02/28 08:27

数件前に同じような質問がありますけど。



http://oshiete1.goo.ne.jp/qa2788626.html
    • good
    • 0
この回答へのお礼

はい。実は、その質問を見て、自分なりの疑問を改めて質問させていただきました。

ASC や JIS 関数は知っていたのですが、ひらがな全角文字からカタカナ半角文字への置換を簡単にできる方法は知らないなーと思い、質問しました。

http://oshiete1.goo.ne.jp/qa2788626.html
では、imogasi様がVBAもしくはユーザー関数を作るとお答えになっているので、分かりましたが、私が質問した時点では、その回答は寄せられていない段階でしたので、質問させていただきました。


もし、nobu555様が良い方法をご存知でしたら、ご教示ください。
よろしくお願いします。

お礼日時:2007/02/28 08:27

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!