- ベストアンサー
[VBA]半角カタカナ
No.858407からの再質問です。 Excel2000を使っています。 D列に「NB/RD」といった色名略称が入っています。F列に、これを「ネイビー/レッド(半角カタカナ)」というふうに表示させたいと思っています。基本となる色名は約200あり、これはIMEの辞書に登録済みです。 下記のようなマクロを作ってみました。 Sub 色名ふりがな() Dim rngTarget As Range For Each rngTarget In Selection rngTarget.Offset(0, 2).Value = Application. _ GetPhonetic(rngTarget) Next End Sub ただし、この方法だとF列には全角カタカナで表示されます。これを同じプログラム上で半角カタカナにするには、どう書けばいいのでしょうか? どなたかご存知の方、教えてください(>_<) ちなみにVBAは勉強を始めたばかりの初心者です。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
VBAやるのにヘルプは必須ですよー。 まぁ、乗りかかった舟で答えとくけど。 rngTarget.Offset(0, 2).Value = StrConv(Application. _ GetPhonetic(rngTarget), vbNarrow)
その他の回答 (3)
- imogasi
- ベストアンサー率27% (4737/17070)
#2の補足で >全角カタカナまではこぎつけたので とあります。 であれば#1で使っている、 rngTarget.Offset(0, 2) = StrConv(rngTarget.Offset(0, 2), vbNarrow) のように、StrConvとvbNarrowを使えばどうでしょう。 VBが入ってないと(StrConvや)vbNarrowは使えないでしょうか。 私の場合は旨く行きましたがVBが入っているお陰かも知れないが。
お礼
imogasiさま、再度ありがとうございました。 教えていただいた方法で、うまく表示させることができました。本当に助かりました!
- GuruGuru22
- ベストアンサー率51% (177/346)
こんにちは、前スレで答えてたものです。 GetPhoneticメソッドとStrConv関数を 組み合わせればよいかと。 ヘルプで確認してみてください。
補足
GuruGuru22さま、再度のご回答ほんとにありがとうございます。 実は今代用品のパソコンを使ってるのですが、これにヘルプファイルがインストールされてないんです。StrConvを使うところまでは思いついて、ネットで調べたのですが、どうもうまくいきません。そこで再度どなたかにご教示願えたら…と思って投稿してみました。 前回の質問で最終補足したとおり、全角カタカナまではこぎつけたので、現在はそれを24行の列に表示させ、本来表示させるべきF列にascで持ってくる、というかっこわるい方法で無理やり表示させてます(悲)。
- imogasi
- ベストアンサー率27% (4737/17070)
Sub 色名ふりがな2() Dim rngTarget As Range For Each rngTarget In Selection rngTarget.Phonetic.CharacterType = xlKatakana rngTarget.Offset(0, 2) = rngTarget.Phonetic.Text rngTarget.Offset(0, 2) = StrConv(rngTarget.Offset(0, 2), vbNarrow) Next End Sub (OKWEBで全角カナに強制変換されますが、現実は 半角カナで出ます) 青 アオ 黄色 キイロ 赤 アカ 緑 ミドリ 参考 StrConv関数を効かせる前段階は Sub 色名ふりがな() Dim rngTarget As Range For Each rngTarget In Selection rngTarget.Phonetic.CharacterType = xlKatakana rngTarget.Offset(0, 2) = rngTarget.Phonetic.Text Next End Sub で 青 アオ 黄色 キイロ 赤 アカ 緑 ミドリ
補足
早速のご回答ありがとうございました。 お教えいただいた方法だと、色名が漢字やひらがなのときはいいのですが、アルファベットだと半角アルファベットで表示されてしまいませんでしょうか? #色名略称がすべて全角アルファベットで入力されているんです。悲しいことに…。
お礼
ありがとうございます!o(> <)o これでやっと安眠できます。 ほんとに色々お世話になりました。