Excelで全角カタカナ→そのまま全角、英数→半角の変換

今日は人が少なかったので、自分でお仕事を見つけてやる。・・・っていってもまた住所録関連ですが。頼まれもしていないのに気になって入力してみたり。データベースから落としてきたものをいじってコピペしただけですが。あーラクチン。あとはここ最近作ったものを色々手直ししたり。あとは、職員さんにWordでの表の作り方を伝授したり。
ExcelでJIS()、ASC()の関数を今更覚えたのは良かったかも。文字種変換の機能としては、全角カタカナを全て半角カタカナにしてしまうASC()しか用意されていないのはどうかなと思わなくもないですが、まぁ、いいでしょう(ネットで調べたところ、全角カタカナ→そのまま全角、英数→半角の変換については、ノンマクロで簡単に解決する方法はないみたいですね)。
個人的に、JIS、ASC関数について、半角→全角変換、および全角→半角変換よりありがたいと思ったのは、INDEXやINDIRECTで文字を引っ張ってきた場合に、空白セルを参照したときに0が付いてしまうところを、JIS(INDEX())のような書き方をすれば、0が返ってこない、その点ですね。・・・こんな事で喜んでいるのは自分だけのような気がしますが・・・。



ふと、ある程度長い単語でも、全角カタカナ→そのまま全角、英数→半角をノンマクロで達成する方法を思いついたのですが・・・。そして、実際動かすときちんと変換できますし。でも、使うシーンが来るまで封印。

上の方法を実験しているときに、ASC関数ではヴは半角にならないことを発見。どうして?あ、逆に、ヴもJIS関数ではヴになってくれませんね(ウ゛になる)。ちょっと失望*1
そしてやっぱり、上の方法を解説。

  • 半角になってしまうカタカナ類を次のように1行目に1セルずつ並べます(“ガ,ギ,グ,ゲ,ゴ,・・・,ア,イ,ウ,エ,オ,・・・,ャ,ュ,ョ,。,「,」,、ー”(濁音、半濁音をもちろん先に並べます))。
  • その下の2行目に今度は、上の半角カナに対応する全角カナを、やはり1セルずつ並べます(”ガ,ギ,グ,ゲ,ゴ,・・・,ア,イ,ウ,エ,オ,・・・,ャ,ュ,ョ,。,「,」,、,ー”(1行目からJIS関数で変換するのでいいでしょう。あ、でも、ヴだけはJIS関数では変わらないので、手でヴと打ってしまいましょう)。
  • それで、英数文字だけ半角に変換したい文字列を3行目以降に用意して、まずASC()で全て半角にした後、それをSUBSTITUTE使って1行目の文字から2行目の文字への変換を繰り返し(“ガ”→“ガ”、“ギ”→“ギ”・・・のような感じです)、文字種を一つずつ変えていって、“ー”→“ー”まで来たらゴールイン。

単純に言うと、カタカナの文字を一種類ずつ半角から全角に変えていくって言う力技な方法です。・・・たぶん、もっと調べればノンマクロでもよりよい方法があるはず・・・。まぁ、この方法も一回作ってしまえばあんまり面倒ではないので、マクロを使えない自分としてはこれで満足です(泣)。

*1:友人に調べてもらいましたが、Office2003でもこれらの関数、同じ仕様のようです