セルにはカタカナ、数字、漢字、文字がすべて混在しています。
カタカナは全角に、カタカナ以外(数字や記号)は半角に統一しようかと思っています。
一度すべてを半角にし、カタカナだけ全角に戻そうかと考えました。
Sub test()
Dim e As Range
Dim f As Integer
Dim rData As Variant, ansData As Variant
Range("A1:A10").Select
For Each e In Selection
ansData = ""
For f = 1 To Len(e.Value)
rData = StrConv(e.Value, vbNarrow)
If Mid(rData, f, 1) Like "[ア-ン]" Then
ansData = ansData & StrConv(Mid(rData, f, 1), vbWide)
Else
ansData = ansData & Mid(rData, f, 1)
End If
Next f
e.Value = ansData
Next e
End Sub
しかしこれでは、
「ッ」「ァ」など小さい文字や、「ー(長音)」が半角から全角に戻りません。
また、「ズ」など濁音が「ス゛」と2文字になってしまいます。
これらの正しく変換されないものをすべて列挙し、Replaceなどを使って修正するしかないのでしょうか?
実は最初に、すべてを「全角→半角」にするようマクロ作成したのですが、半角にする文字をReplaceですべて列挙しるのは大変だと思い、「半角→全角」にしたらうまくいくかと思ったのですが、それでもうまくいきませんでした・・・
よろしくお願いします。
No.2ベストアンサー
- 回答日時:
> また、「ズ」など濁音が「ス゛」と2文字になって
そりゃもちろん・・半角変換後に「一文字ずつ全角に変換」していますから、
濁点や半濁点も「1文字」として全角に変換しちゃいますよね。
じゃぁどうしましょう?ということで、
逆の手順で考えてみると上手くいくかも?
Sub test()
Dim e As Range
Dim f As Integer
Dim rData As Variant, ansData As Variant
Range("A1:A10").Select
For Each e In Selection
ansData = ""
rData = StrConv(e.Value, vbWide)
For f = 1 To Len(rData)
If Asc(Mid(rData, f, 1)) < -32097 Then
ansData = ansData & StrConv(Mid(rData, f, 1), vbNarrow)
Else
ansData = ansData & Mid(rData, f, 1)
End If
Next f
e.Value = ansData
Next e
End Sub
さぁ、何を逆に考えたでしょう(笑)。
簡単に解説してみると、
・すべて全角に変換
・一文字ずつ取り出しながら
・Ascで変換した文字コードが「-32097=“ぁ”」より小さかったら
・半角に(出来るものは)変換
・それ以外は
・そのまま
・文字列長分繰り返し
・セルに戻す
という作業です。
文字コードに関しては以下でご確認ください。
http://charset.7jp.net/jis.html
“日本語”で最初に出てくる文字は「ぁ」で、
そのコードを10進数に変換したのが「-32097」です。
上記ではこの「-32097」より小さい数字は「日本語以外=半角に変換」としています。
ちなみに・・StrConv(Narrow)では「半角にできない記号」は無視されますので、
日本語より先に出てくる「数学記号や矢印」などは考慮しなくて大丈夫と思われます。
参考までにどうぞ。
文字コードを利用する方法は思いつきませんでした。
これで、半角にしたいものに対応できそうですね。
助かりました。ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルシート中の全角英数字を半角に変換したい 4 2022/07/07 13:14
- Access(アクセス) Accessのテキストボックスの入力文字制限 1 2023/01/18 20:43
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/15 15:48
- その他(Microsoft Office) WordやExcelで英数字のみ半角または全角にしたい 6 2022/08/03 08:18
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 6 2022/06/08 12:55
- Excel(エクセル) エクセル VBA For Next 繰り返しの書き方を教えてください 6 2022/09/01 14:11
- Excel(エクセル) 【マクロ】フォルダを3つ、POモニター上に、決まった並べ方をしたい 4 2022/08/31 11:05
- Excel(エクセル) 【マクロ】フォルダAからダBへファイルを、ファイルの更新日時の条件で、1つづつ移動するには? 3 2022/08/25 09:56
- Excel(エクセル) vba userformで漢字を全角カタカナに 2 2022/07/24 15:38
- Visual Basic(VBA) 特定の文字を簡単な操作で半角スペースに変換するか削除したい 2 2022/11/01 10:35
このQ&Aを見た人はこんなQ&Aも見ています
-
見学に行くとしたら【天国】と【地獄】どっち?
みなさんは、一度だけ見学に行けるとしたら【天国】と【地獄】どちらに行きたいですか? 理由も聞きたいです。
-
人生最悪の忘れ物
今までの人生での「最悪の忘れ物」を教えてください。 私の「最悪の忘れ物」は「財布」です。
-
治せない「クセ」を教えてください
なくて七癖という言葉どおり、人によっていろいろなクセがありますよね。 あなたには治せないクセがありますか?
-
集合写真、どこに映る?
あなたが集合写真を撮られるとき、画角のどのあたりにいることが多いですか? 私は振り返ってみると右の端にいることが多い気がします。
-
我が家のお雑煮スタイル、教えて下さい
我が家のお雑煮スタイル、教えて下さい! (お汁)味噌汁系? すまし汁系? (お餅)角餅? 丸餅? / プレーンなお餅? あんこ餅?
-
カタカナのみを半角から全角に変換したいのですが
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・「黒歴史」教えて下さい
- ・2024年においていきたいもの
- ・我が家のお雑煮スタイル、教えて下さい
- ・店員も客も斜め上を行くデパートの福袋
- ・食べられるかと思ったけど…ダメでした
- ・【大喜利】【投稿~12/28】こんなおせち料理は嫌だ
- ・前回の年越しの瞬間、何してた?
- ・【お題】マッチョ習字
- ・モテ期を経験した方いらっしゃいますか?
- ・一番最初にネットにつないだのはいつ?
- ・好きな人を振り向かせるためにしたこと
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・2024年に成し遂げたこと
- ・3分あったら何をしますか?
- ・何歳が一番楽しかった?
- ・治せない「クセ」を教えてください
- ・【大喜利】【投稿~12/17】 ありそうだけど絶対に無いことわざ
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・集合写真、どこに映る?
- ・自分の通っていた小学校のあるある
- ・フォントについて教えてください!
- ・これが怖いの自分だけ?というものありますか?
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・10代と話して驚いたこと
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
お名前(姓)」には「カタカナ(...
-
半角の『°(単位の度)』
-
契約書や 公文書・私文書などに...
-
℃の半角表示
-
EXCELで、セル内の半角カ...
-
ワードで論文を書こうと思うの...
-
1, (1),(1)の使い分け
-
隅付き括弧に半角はありますか...
-
Excel 文字列の中から数字だけ...
-
エクセルでひらがな・漢字はそ...
-
EXCELの文字列操作で文字数不足...
-
半角の漢字の入力方法
-
半角スペース
-
テプラは半角数字が使えますか?
-
InputBoxの入力値を半角数字の...
-
amazonでのクレジットカード入...
-
【VBA】ファイルパスに半角スペ...
-
半角英数で♭の入力
-
半角の×(かける)は?
-
ダブルクォーテーション・マー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
半角の『°(単位の度)』
-
契約書や 公文書・私文書などに...
-
℃の半角表示
-
半角の×(かける)は?
-
EXCELの文字列操作で文字数不足...
-
EXCELで、セル内の半角カ...
-
エクセル関数で文字列の中のス...
-
半角スペース
-
EXCEL95 VLOOKUP関数で半角と全角
-
お名前(姓)」には「カタカナ(...
-
テプラは半角数字が使えますか?
-
問2 次の文中の空欄にあてはま...
-
メールアドレスの上ハイフン入...
-
【VBA】ファイルパスに半角スペ...
-
エクセルで、JIS関数、ASC関数...
-
Excel 文字列の中から数字だけ...
-
Excel2016 検索の窓を常時表示...
-
エクセルで 全角の空白を含む...
-
エクセルでひらがな・漢字はそ...
-
文章を縦書きにしたとき、数字...
おすすめ情報