TOP > blog > エクセルVBA ユーザ定義関数を登録する (住所半角変換関数)
スクリプト
2019/05/21

エクセルVBA ユーザ定義関数を登録する (住所半角変換関数)

管理者用
blog

弊社では、バリアブル印刷をメニューに取り入れております。
バリアブル印刷の為の可変データに対しては、使用目的に対し、様々な形に正規化する事が求められます。
バリアブル印刷では、データの正規化処理は必須項目です。
エクセルなどを利用して対応します。

エクセルで良く使うのは、文字列操作のために用意されているワークシート関数です。
しかし、これら関数で、なんでも出来るわけではありません。

こんな時は、その都度、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

以上

 

関連記事