今、Excelで作っているツール。
CSVファイルを読んで、ある列の全角カタカナを半角カタカナに、ハイフンなしの電話番号を市外局番、市内局番、加入者番号ごとにハイフンを挿入してExcelファイルに変換するというもの。
電話番号は、総務省の市外局番一覧をダウンロードして、番号を当てながら桁数をきめないといけないので、ちょっと大変だけど、まあ、それほど問題ではない。
問題なのは、全角カナを半角カナに変換するほう。
ネットを見るとStrConv()って関数で一発変換できそうに書いてある。
試してみると、実行時エラーになって上手く行かない。
エラーって、ただ文字列と、ナニに変換するかを指定するだけで、エラーになるような要素はない。
困ったなあと思いながらググってみると、
StrConv(string, conversion, LCID)
と書いてあるページを見つけた。
LCIDってなんだと思い読んでみると
LCID
省略可能です。
使用しないと思いますので、読み飛ばして構いません。
システムとは異なる国別情報識別子 (LCID) を指定できます。
既定値はシステムが使用する LCID です。
って書いてある。
なるほど、こいつかと思い至った。
Windowsの日付の表示を米国用にしているので、 LCIDが日本ではないからエラーになってる模様。
同じページに
vbNarrow* 8* 文字列内の全角文字 (2 バイト) を半角文字 (1 バイト) に変換します。
* 国別情報の設定が中国、韓国、および日本の場合に適用されます。
とも書いてあった。
そこで、日本のLCIDを探して、引数に追加するとサクッと変換できた。
Windowsのロケールを日本以外にしてる奴なんていないかもしれないけど、もししていて、StrConv()がエラーになれば、LCIDを設定すればおっけーだからね!
■
鉄男さんの長男が16歳の誕生日だそう。
そして、きょうは、頭痛なし。
--
No comments:
Post a Comment