anzhconv.bas rev.2 Written by Seiji Fujita http://userweb.alles.or.jp/sfujita/ =========================================================================== 【概説】 全角英数字・記号を半角英数字・記号に変換するVBA for Excel用関数です。 作成はMS Excel 97で行いましたが、Excel 97以降であれば使用できるはず ですし、おそらくExcel 95でも使えると思います。 MS Word 97でも動作します。 また、MS Access 97以降にもそのままで使えると思います。 関数名  ANZHConv 関数の戻り値の型  文字列型(String型) 引数  文字列(String型)―― 変換対象文字列 変換対象文字  0123456789  ABCDEFGHIJKLMNOPQRSTUVWXYZ  abcdefghijklmnopqrstuvwxyz  −+;:.,!#%’()= ̄_|*$[]&¥ 【使用方法】 MS ExcelのVBEに、ソースファイルをコピー&ペーストするだけで、 ワークシート上で標準関数と同じ要領で使用したり、VBA側の他の関数から 組み込み関数と同様の要領で使用したりできます。 MS Accessの場合も上記に準じます。 ワークシートで使用する例  A1セルの内容が、   1バイト変換するサンプル文字列123ABC7890.&¥[]$  である場合に、  B1セルに =ANZHConv(A1) と代入すると、  B1セルには変換結果の   1バイト変換するサンプル文字列123ABC7890.&\[]$  が表示されます。  B1セルに直接、   =ANZHConv("1バイト変換するサンプル文字列123ABC7890.&¥[]$")  の様に代入しても結構です。  但し、文字列に半角二重引用符「"」が含まれる文字列の場合には、「"」1文字を  2文字の「""」に置き換えて下さい。  例: =ANZHConv("1バイト変換する""サンプル文字列""123") VBAで使用する例:  str1 = ANZHConv("サンプル文字列123ABC7890.&¥[]$")  str2 = ANZHConv(InString) 【応用使用方法】 ワークシート関数のJIS()と併用して  =ANZHConv(JIS(A1)) の様にすれば、カタカナを全角にしつつ、数値を半角に揃えられます。 私のWebで公開している HK2ZHKConv と併用しても同様のことが可能です。  =HK2ZHKConv(ANZHConv(A1),"K") または  =ANZHConv(HK2ZHKConv(A1,"K")) 【ソースプログラムの改変・配布など】 著作権は私が保持しますが、必要に応じて改変を認めます。 配布も自由に行って戴いて構いません。 改変の場合は改変内容と改変者を追加し、オリジナルそのままでないこと を記すとともに、オリジナルのクレジット部分も残してください。 【備考】 ・VBAとして記述したコードをVBScript/Windows Script Hostとして記述し直した版も  公開しています。マウスクリックで単独動作させたい場合はそちらをご利用下さい。 ・ExcelのVBAが備える StrConv関数を使用して、以下のようなサンプル関数を作成  すると、ANZHConv関数と同様のことを実現できます。  但し、2バイト文字で記述されたカタカナまで半角変換されてしまいます。  また、このStrConv関数は、VBScriptには存在していないため、以下のサンプル関数  は、VBScriptとして実行させることができません。 ' 文字列中の全角英数字・記号・カタカナを半角に変換する関数例 Function To1byteANK(ByVal MyString As String) As String To1byteANK = StrConv(Mystring, vbNarrow) End Function 【その他】 本VBA関数を使用した結果に対して、作者は一切の保障・補償を致しません。 本関数に対するご意見・ご希望は歓迎いたしますが、作者はそれら全てに 対応する義務を持ちません。同様に、バグや仕様不足に対する修正の義務 も持ちません。 【履歴】 rev.0 公開 rev.1 ダッシュを半角のマイナスに変換するのを止めた。 rev.2 宣言し忘れの変数 slen を宣言した。