業務をこなす中で文字抽出の、
ユーザー定義関数は、役に立ちました。
氏名文字の中から 名 を抽出する
ユーザー定義関数 氏 VBA です。
Public Function 名(Target As Variant)
Dim A As Variant
On Error GoTo myError
A = Split (Target , " ")
名 = A(1)
Exit Function
myError: 'エラーが発生したらこの行にジャンプします。
名 = "該当無"
End Function
目次
【文字抽出】ユーザー定義関数 氏 VBA マクロ処理の説明。
- ユーザー定義関数をBook 共通 で
使うのなら Public (公)と言う文字を頭にをつけます。
単独Book だけの ユーザー定義関数 にするのであれば、未記入 にします。 - 「ユーザー定義関数名」
四の五のなく、Function 名と書きます。注意ポイント
ユーザー定義関数 名を 名 にしましたが、
ここに書いた文字が関数挿入ダイアログに、
表示されます。
分かりやすい名前をつけて下さい。 - カッコ内に引数名と引数データー型を書きます。
引数が複数ある場合 , で区切り追加記入して行きます。
ここに書く引数名がセル選択に使われる為、
分かりやすい名前にしておきましょう。
引数名称は、Target にしました。
VBA とか マクロ とか?と思われた方は、合わせてお読みください。
ユーザー定義関数、引数のデーター型の宣言
引数にどんなデーターが入って来るのか宣言しておきます。
ポイント
引数(変数)に入るデーター型は、Variant(何でもあり!)とする!
と言う意味です。
データ宣言に関しては、下記記事に詳しく書きました。
-
Excel マクロ に出てくる 変数 とか、宣言のDimとか、データ型って何よ。
Excelの広場 最初にまず?となるのが、Dimで変数を宣言することでしょう。数学で X とか Y とかでてきましたよね。 例えば、 X = 5 Y = 10 とか.. 日本語は難しい言い方をして X ...
続きを見る
ユーザー定義関数、 VBAコード内に使用する。変数の宣言
ユーザー定義関数 VBA コード 内で、
使用する変数のデーター型を指定します。
Dim A As Variant
変数名 A は、
配列データーが入って来るので
データー型 は、Variant(何でもあり)にしました。
変数名称は、アルファベット、漢字、
ひらがな、演算禁則文字 以外なら何でもOKです。
7A とか、
数字を頭に付けるのは、NG です。
この場合、数字を後ろにもってきて、
A7 等、にしましょう。
ユーザー定義関数、On Error エラー処理
何らかのエラーが発生した場合、
指定した タグ(札)名 まで飛びます。
On Error GoTo myError
この場合、エラーが発生したら
タグ myError まで 飛びます。
ユーザー定義関数、VBA 分離 Split 関数
Split 関数は、指定した文字で区切った
文字列を配列にして返します。
A = Split ( Target , " " )
上記の場合、
Target セルに書かれた文字列の中から
空白(スペース)をキー文字にて、その前後を配列にして変数 A に格納します。
Target セル が、
坂本 龍馬 の場合、
キー文字 空白 の前後文字、
0号室 = 坂本
1号室 = 竜馬
各々の文字が、変数 A に格納されます。
変数 A には、
坂本 と 竜馬 が入っているので
1 号室に入っている、
竜馬 を取り出せば、
ユーザー定義関数 氏 は、
竜馬 と言う文字になります。
Exit Function
処理にエラーが発生しなければ、
ユーザー関数 県 は、マクロ実行を終了します。
myError:
処理エラーが発生すれば、
名 = "該当無"
ユーザー定義関数 名 に 該当無し を入れ、
End Function
全ての処理を終了します。
名前文字列に空白区切りが無い場合、
名 は、空っぽ 未記入(空白)になります。
名前文字列が 未記入(空白)の場合、
該当無 と表示されます。
【文字抽出】ユーザー定義関数 名 を使ってみましょう!
① セル P8 を選択して fx ⇒ ユーザー定義 ⇒ 「OK」
② 関数名 名 を選択
③ Target A2 セルを選択
④ 「OK」釦を押すと、氏名 から 名 文字だけが抽出される。
⑤ 後は、いつものように 関数式を ドラッグすれば OK です。