- ベストアンサー
Excel 第1水準漢字のみのデータにしたい
エクセルに入力されているデータで 第2水準漢字なども含まれているものがあります。 漢字は第1水準のみにしたいのですが 何か方法はありますでしょうか? 第2水準以上の漢字を検索する方法など ありましたら教えていただけませんでしょうか? よろしくお願いします!
- みんなの回答 (8)
- 専門家の回答
質問者が選んだベストアンサー
再び#3です。 If Range("IV2").Value < 12321 _ Or Range("IV2").Value > 20307 Then '第一水準外だったら の部分を If Range("IV2").Value > 20307 Then '第一水準より大きい場合 に書き換えて下さい。 そうですよね、「ひらがな」とかもはじいていましたね。失礼しました。 文字コードは、 (1)半角文字 (! 33) (2)記号・英数字 (、 8482) (3)ひらがな・カタカナ(ぁ 9249) (4)ギリシャ文字 (Α 9761) (5)ロシア文字 (А 10017) (6)特殊文字 (─ 10273) (7)第一水準 (亜 12321) (8)第二水準 (弌 20513) (9)外字 ( 32545) の順番で振られているようです。 ( )内は、先頭の文字とCODE関数での文字コードです。
その他の回答 (7)
- WWolf
- ベストアンサー率26% (51/192)
#4です。 Private Sub CommandButton1_Click() というイベントなのでコマンドボタンを押せば・・・ ということになります。 #6さんと同様な方法でいくなら Private Sub CommandButton1_Click() を Private Sub test() とでもして下さい。
お礼
助かりました!ありがとうございました(^_^)
- hogehage
- ベストアンサー率50% (54/107)
一番汎用的と思われる方法は、 (1)ALT + F11 とすると、コードの画面(VBE) になります。 (2)左にある ThisWorkbook をダブルクリックします。 (3)右の真っ白なところに、#3 や #4さんのコードを 貼り付けます。 (4)コードの画面(VBE)は、×で閉じて構いません。 (5)ALT + F8 とすると、マクロの一覧が出てきますので、 選択して、[実行]をクリックするとマクロが実行されます。 引っかかるところがありましたら、再度書き込んで下さい。ではでは。
お礼
できたぁぁ!わざわざすみません(>_<) ちなみに、漢字以外の文字は対象外ということは可能なのでしょうか???ひらがなとか数字まじりのデータの場合は使えませんよね(^_^;)
- hogehage
- ベストアンサー率50% (54/107)
#3 です。すみません。今日何気なく実行してみたらExcel2003でも、問題なく実行できました。 う~ん、何を勘違いしたのか、、失礼しました。
補足
ごめんなさい、ものすごい基本的なことを聞いてよいでしょうか… 私はエクセルのマクロは「新しいマクロの記録」とかでシート上で設定する方法しか知らないのを忘れていました(>_<) 教えてもらったスクリプトをどこに書いてどう実行すれば良いのか教えていただけますでしょうか? 申し訳ないです。
- WWolf
- ベストアンサー率26% (51/192)
参考として 下記はシート1のA1からA10までのセルに入っている文字で第二水準が含まれている場合メッセージボックスをだします。 Private Sub CommandButton1_Click() Dim StrTget, StrAll, StrLen, Moji For i = 1 To 10 StrTget = Worksheets(1).Cells(i, 1).Value StrAll = StrTget StrLen = Len(StrAll) For j = 1 To StrLen Moji = Mid(StrAll, j, 1) If Asc(Moji) >= -26465 Then MsgBox "第二水準" & Chr(13) & Moji End If Next j Next i End Sub
お礼
ありがとうございます(>_<)自宅のPCはExcel2003なので、休み明けに会社で試してみます!
補足
N0.6で教えてもらった方法で貼り付けて動かしてみたのですが、ちゃんと動きませんでした…Alt+F8を押しても「マクロ名」に何も表示されません(T_T)
- hogehage
- ベストアンサー率50% (54/107)
それでは、 ■選択されているセルの文字列を1文字ずつ確認しています。IV1 にその1文字を入れ、IV2 の CODE関数 で文字コードを拾っています。 ■第一水準外だったら文字色を[赤]にしています。 ■第一水準の文字コードは、12321~20307としています。 ※ Excel2000 で動作確認しています。Excel2003では、Midでエラーになります。 Sub sample_code() Range("IV2").Formula = "=CODE(IV1)" For Each T_C In Selection '選択セル '1文字ずつ確認 For ii = 1 To Len(T_C.Value) Range("IV1").Value = Mid(T_C.Value, ii, 1) If Range("IV2").Value < 12321 _ Or Range("IV2").Value > 20307 Then '第一水準外だったら '[赤]にします T_C.Characters(Start:=ii, Length:=1).Font.ColorIndex = 3 End If Next ii Next 'クリア Range("IV1:IV2").ClearContents End Sub
お礼
ありがとうございます(>_<)自宅のPCはExcel2003なので、休み明けに会社で試してみます!
- hogehage
- ベストアンサー率50% (54/107)
CODE関数とマクロで1文字ずつチェックして、第二水準だったらその文字に色を付けるなんて出来そうですよ。 希望されるのでしたら、サンプルを書きますが。
お礼
ご返答ありがとうございます。試してみたいので、やり方を教えていただけないでしょうか?関数やマクロはあまり使ったことがないのですが(>_<)
- dalnu
- ベストアンサー率25% (2/8)
アナログ的な手法ですが、第一水準までしかないフォントを適用して、目で見て判別。 有料フォントでは「仙草」が第一水準までの漢字しかありませんし、フリーで公開されているフォントにも第一水準までしかない(そこまでしか作っていない)物が多々あります。 特徴的なフォントであるほど判別しやすいです。 検索する対象が少なければ、これで充分かと。 でなければ、下記の様なExcelファイルの検索・置換が出来るソフトで、検索対象語句に第二水準以降の漢字を登録して使ってみてはいかがでしょうか。
お礼
ご返答ありがとうございます。 やっぱりひとつずつ見るしかないんですかね…第一水準しかないフォントで表示すると、第二水準の漢字はどのように表示されるのでしょうか?何かの文字に置き換わるのであれば、またその置き換わった文字を検索できるのであれば問題は解決するのですが…
お礼
分かりやすいご回答、何から何までありがとうございます(>_<)おかげ様でできました(^^)本当に助かりました!