⇒ こちらの記事をご覧ください。
住所録の中から、氏名の読みがなを使ってデータ検索しようとすると、そのセルにひらがな以外のものが混じっていると不都合だからです
ひらがな以外の文字(漢字や数字、記号等)が混じっていないかは、マクロを使えば、一瞬で判定してもらえます。
前回記事では、マクロコードを紹介した上で、
「ある程度VBAをかじったことがあれば、理解できるはずです。」
と書きました。ただ、マクロに習熟されていない方のために、今回は、そのコードの中味を、少しだけ解説しましょう。
入力されたデータがひらがななのか、そうでないのかは、ある範囲内の文字かどうかを調べることによって、判定できます。
それぞれの文字は、文字コードが順番に割り振られています。つまり、文字コード表上に、文字が順序よく並んでいます。
文字コード表で、「ぁ」から「ん」までの範囲にある文字がひらがなというわけです。その範囲外の文字は、ひらがなではありません。
そして、範囲内の文字か、範囲外の文字かの判定には、文字列比較演算子「Like」を使います。
変数Result = Range("A1").Value Like "[ぁ-ん]"
というコードになります。
A1セルの値(1文字である必要あり)が、
[ぁ-ん]の範囲内にあれば、変数Resultには「真True」が入り、
[ぁ-ん]の範囲外であれば、変数Resultには「偽False」が入る
というわけです。[ぁ-ん]の範囲外であれば、変数Resultには「偽False」が入る
![](https://blogimg.goo.ne.jp/user_image/56/a0/d333a0499e6a9ec06f9899979a3ee36d.jpg)
さらに解説を付加すると、[] (半角かっこ) は、文字リストを表記するための特殊文字です。
[charlist] という形で用いて、文字リストcharlistに指定した文字の中の任意の1文字を表します。"[あいう]"とすれば、「あ」「い」「う」のいずれか、ということになります。
また、ハイフン (-) を使用して範囲の上限と下限を指定することで、charlistで文字の範囲を表記できます。
"[ぁ-ん]" とすれば、「ぁ」と「ん」の範囲内の1文字ということになります。
上記のように、データがある範囲内の文字かどうかの判定は、それこそ、マクロが超得意とするところです。マクロに任せると、一瞬で、即座に判定してくれます。人間がやる作業の不完全さを補ってくれます。人間、はときにポカをやりますが、コンピュータは文字どおり、機械的に画一的に処理するので、そういった作業でミスは犯すことはありません。
Excelマクロって、便利ですよねぇ。
Wordマクロも便利ですが。
それでは、また次の記事で。
■■■■ goosyun ■■■■