【Excel VBA】なんだ、カンタン 1番カンタンなFunctionの説明
最初は、動けばいいから始まるVBAです。
そこからコードの効率化を求めます。
Functionや、クラスモジュール、ループ等です。
今回は、一番カンタンなFunctionの説明をします。
動画でも詳細に解説しています。
なんだ、カンタン 1番カンタンなFunctionの説明
こんにちは。伊川(@naonaoke)です。
以前に、VLOOKUP関数を、Functionを利用して実行しました。
しかし、私は、VLOOKUP関数が、大嫌いです。
VLOOKUP関数が、大好きであれば、チャネル登録1万人は、あり得なかったと思っています。
Index関数とMatch関数が、私を、一躍、スターダムに引き上げてくれました。
しかし、そこから、HIT動画もないので、まさに、一発屋です。
ねずみ先輩や、堀江淳さんと、同じ部類です。
なので、Index関数とMatch関数をFunctionで紹介しないと、伊川ではないと思いました。
今回は、Index関数とMatch関数をFunctionで実行します。
この動画で、Functionの疑問も解決できると思います。
何度も言いますが、合否判定や、消費税の計算だけが、Functionではありません。
このブログはこんな人にお勧め
Excelで、VBAを勉強している人
VLOOKUP関数が、大嫌いな人
VLOOKUP関数とIF関数の組合せた、Excelを利用している人
このブログを、読み終わるころには・・・・
Functionは、初心者の頃は、難しいと思っていたはずです。
確かに、Function内で、配列等を利用すると難しいのですが、
今回は、Excelに許されたWorksheetFunctionを利用します。
それほど難しくはありません。
Functionを利用する面白さ
私が初心者のころ、複雑なFunctionプロシージャのコードを見て、書いている人は天才と思っていました。
多分、私は、その領域に絶対に到達できないと思っていました。
勉強しようと思っても、合否判定と、消費税の計算ばかり。
他の言葉で検索すると、異常に難しいFunctionの記載が・・・・・・・
えーい、面倒くせー、Functionなんて知らなくても、動けばいいと思ってはいけません。
これから、順に説明します。
きっと、なんだ、そんなことかと思うはずです。
Functionを利用する面白さ 作業手順 その1 データベース確認
もちろん、VLOOKUPでもできます。
しかし、私は、Index関数とMatch関数の大ファンなので、VLOOKUPを利用しないで、Functionで表現します。
Functionを利用する面白さ 作業手順 その2 Functionで関数を記載できない
その気持ちわかります
そうなんですよね。ここで、まず、躓きます。嫌になります。Functionなんでカンけーねぇと思います。
でもね。
WorksheetFunctionを利用すると、少しだけ理解できるようになります。
これが、本来、ワークシート関数で表現する、Index関数とMatch関数です。
では、この中に、引数は、何個あるでしょうか?
全部で4つあります。
この4つが、Functionの中に格納されます。
Function(1個目の引数 as 型,2個目の引数 as 型 , 3個目の引数 as 型, 4個目の引数 as 型)as Variant
このようになります。
ATAI⇒B:B⇒Variant型
str⇒A:A⇒Variant型
rng⇒F:F⇒Range型
このように設定します。
ワークシート関数で表現する、Index関数とMatch関数を利用するとき、私は、すべて列で指定しています。
しかし、VBAで表現するときは、間違いです。
ATAIと、strは、結果的に列を指定しています。
Variant型にしたのは、検索するものが、数値が、文字型がわからないので、汎用性を持たせるために、Variant型にしています。
Functionを利用する面白さ 作業手順 その3 Index関数とMatch関数を記載する
赤枠と青枠は、ほぼ、同じ意味です。
赤枠のほうは、汎用性を持たせるために、ボヤーと記載しています。
範囲等は、Subプロシージャで設定します。
Functionを利用する面白さ 作業手順 その4 親プロシージャに記載
ここのSubプロシージャで、範囲等をしていします。
えっ、コードに無駄が多いって?
スルドイです。
その通りです。ここは、ループで回しましょう
Functionを利用する面白さ 作業手順 その5 ループを設定
これで完成です。
ここがポイント
今回のコードや、ロジックは自慢できるものではないと思います。
でも、思い通りに動いてくれたので、これで良しとします。
大切なのは、ここで賢いと思ったつもりにならないことです。
ここが限界ではありません。
もっと、綺麗にコードが書けるまで、勉強は続くのです。
まとめ
今回は、Index関数とMatch関数をFunctionで表現しました。
こんなコードは、まだまだです。
もっと勉強して、みなさんに有益な情報を提供したいと思います。
今回も最後まで読んでいただきありがとうございました。
サンプルファイル
紹介した内容に関しては、サンプルファイルを用意しています。必ず作動します。ネット上で検索したコードは、コピペしても作動しない可能性が合います。悩むより、本当に勉強したいのであれば、必ずお役に立てると思います。私のサイトで、月額3,000円で販売しています。
よろしければサポートをお願いします。いただいたお金に関しては、書籍の購入に充て、より良い情報を皆様に提供します。