エクセルVBA ユーザ定義関数を登録する (住所半角変換関数)
管理者用
弊社では、バリアブル印刷をメニューに取り入れております。
バリアブル印刷の為の可変データに対しては、使用目的に対し、様々な形に正規化する事が求められます。
バリアブル印刷では、データの正規化処理は必須項目です。
エクセルなどを利用して対応します。
エクセルで良く使うのは、文字列操作のために用意されているワークシート関数です。
しかし、これら関数で、なんでも出来るわけではありません。
こんな時は、その都度、VBなどのスクリプト書いて対応します。
しかし、これらスクリプトは、全く管理されておらず、使用した後は、捨てられて行くのです。
同じような仕事が入って来ても、探しだせず、同じことの繰り返しです。
また、当社で現在、使用している、宛名レイアウトは、エクセルVBAで構築してます。
この中の、サブルーチンや関数の中には、少し手を加えるだけで、便利なものも有りそうです。
今まで、作ってきたスクリプトをかき集め、ワークシート関数として使用出来るようにに手を加え、
管理して行く事を思いつきました。
今日は、住所データの数字を半角に変換するワークシート用の関数を紹介したいと思います。
横書用の宛名レイアウトスクリプトの中で、使用していた半角文字への変換処理の部分に手を加えました。
住所データ、半角数字への変換
関数は、関連する3つのスクリプトから構成されています。
1.JYUSYO_Hankaku(jyusyo)
住所データの末尾から漢数字・倍角数字 を半角に変換します。
変換は、末尾の文字から実施し、漢数字以外の文字が出てくるまで実行します。
実行例
2. T_KJ_As(ch_in, K_moji)
指定された文字の前の漢数字を半角に変換します。
例えば、七丁目 ⇒ 7丁目 に変換したい場合、”丁目”を指定します。
3.T_kja(ch_in)
上記、2つの関数使って、住所データを変換する関数です。
通常は、この関数を使用します。
スクリプトの記述位置
作成したスクリプトをワークシート関数として使用する為には、標準モジュールの位置に記述します。
ユーザ定義関数として、ワークシート上で使用できます。
今回の例では、「Moji」 としてその下に上記3つの関数を記述してます。
ここに取り上げた、3つのスクリプトにつきましては、最後にエクセルファイルをダウンロードできるようにしてます。
ワークシート関数の実行
使い方は、通常の関数と同じです。
関数を選択する場合、次のように 関数の分類を 「ユーザー定義」 にすると
登録した3つの関数が見えます。
数式 ⇒ 関数の挿入 ⇒ ユーザー定義 から 関数を選択
実行例
さて、この関数を別のエクセルファイルで使用したい場合は、コピーして登録する必要があります。
それが面倒な場合、アドインとして登録しておくことをお勧めします。
アドイン登録方法
関数の書いたエクセルファイルをアドインモードで保存します。
拡張子は Excelアドイン .xlam
保存先は、 AddInsですが、
C:\・・・・\AppData\Roaming\Microsoft\AddIns
Excelアドイン(*.xlam) を選択すると、自動的に保存フォルダーになるようです。
例では、VbFunc_Rev_01 で保存しました。
登録したアドインを有効にします。
新規にエクセルファイルを開きます。
ファイル ⇒ オプション ⇒ アドイン ⇒ 設定 ⇒ 有効なアドインの中に表示される 登録のチェックをいれます。
保存した、ファイル名で表示されている VbFunc_Rev_01 にチェックを入れてOK
これで、使用可能となります。
数式 ⇒ 関数の挿入 ⇒
VBAのモジュール
エクセルファイルダウンロード
VbFunc_Rev_01ファイルをダウンロードしてくだい
拡張子を.txt にしております。.xlsmに変更して使用してください。
ダウンロード ⇒ VbaFunc_Rev_01.zip
以上