初心者のうちは、Fubctionもそうですが、配列も苦手な分野です。
ましてや、Fubctionと配列を合体など、とんでもない事ですね。
でも意外とカンタンです。
目次
Functionと配列を合体させる
こんにちは。伊川(@naonaoke)です。
侍エンジニアのサイトでは、最後に、配列を戻り値にする方法があるのですが、私にスキルがないためにサンプルコードを作成できないです。
申し訳ありません。
ということで、今回は、私の中で、実際に競馬アプリ作成で利用したコードを紹介します。
内容としては、そんなに難しくないので、大体、こんな感じ?で理解していただければと思います。
このブログはこんな人にお勧め
- ExcelでFunctionを勉強している人
- Excelで配列を勉強している人
- ExcelでVBAを勉強している人
このブログを、読み終わるころには・・・・
前回紹介した、ユーザー定義関数と考え方は同じです。
汎用性が、少し物足りないかもしれません。
配列は、1元配列を利用していますが、実務でも十分に利用できます。
Fubctionと配列
このFubctionと配列をスラスラかけるようになれば、もう、VBAは中級者以上ではないでしょうか?
私は、まだ、その域にいません。
以前に紹介した、配列と考え方は同じです。
今回は、特定の文字がセルにあったら、その特定の文字に抽出します。
Fubctionと配列を合体 作業手順 その1 データベース確認
余談
このように、りんご、みかん、さくらんぼ、ぶどうを抽出したいと思います。
少し、仕掛けが必要になります。
別シートに、抽出したい文字を記載するのは、汎用性がありますが、このコードに関しては、サンプルファイルをご購入した方のみに記載してあります。
![](http://keiyu.xyz/wp-content/uploads/2019/11/Sample-300x158.jpg)
わからない事を延々と考えるのは、無駄です。
- なんで作動かないの?
- もうやだ!VBAなんか嫌い!
- ネットで調べても情報がない!
必ず作動するコードが、ここにあります。
Fubctionと配列を合体 作業手順 その2 Fubctionを記載する。
結果的に、今回、実行したいことは、特定の文字を抽出します。
特定の文字なので、型はString型になります。
また、配列に、キーワードを格納します。
今回の場合なら、りんご、みかん、さくらんぼ、ぶどうです。
配列で格納した、キーワードを、For~Nextでループします。
キーワードが、見つかったら、Functionから抜けます。
この形は、配列の基本ですね。
なんでもいいので、ご自身でサンプルを作成することをお勧めします。
今回作成したFunctionは、りんご、みかん、さくらんぼ、ぶどうを探す仕事しかしません。
前回も言いましたが、ガチガチに決めてしまうと、汎用性がなくなります。
ボヤーっと決めます。ここが、ポイントです。
Fubctionと配列を合体 作業手順 その3 親プロシージャを作成する
ここで、配列が作動する場所を決めます。
つまり、A列を指定します。
今回の例で言うなら、転記する列は、C列になります。
ここは、前回のFindを利用すると、汎用性が有りません。
ここは、配列を利用したほうが早いと思います。
Fubctionと配列を合体 作業手順 その4 InStr関数
このコードは、競馬に利用しました。
どのように利用したのかというと、ダービーG1のように、G1を抽出したかったのです。
しかし、JRAは、必ず、後ろの2文字が、G1とは限らないのです。
どこにG1あっても、G1を抽出したかったのです。
その際に活躍するのが、InStr関数です。
今回は、Functionでも配列でもなく、主役は、InStr関数なのです。
大体ですが、特定の文字抽出となれば、InStr関数が活躍します。
その文字列に、合致する文字があれば、1以上の値を返します。
このInStr関数は、本当に素晴らしい関数です。
ここがポイント
![Function8.png](http://keiyu.xyz/wp-content/uploads/2019/10/102819_0637_Function8.png)
特定の文字を探す、抽出は、今回の方法が、一番マッチしています。
配列も、Functionも、初心者の方には、ピンときません。
でも安心してください。
私もそうでした。
でも、安心してください。
コードを気長に眺めていれば、いつか、突然理解できる日が来ます。
まとめ
今回は、実際に、販売したコードを紹介しました。
自慢できるようなコードではありませんが、VBAを知らない人には、手品しか見えません。
しかし、VBAは手品ではありません。
スキルを身に着けることで、究極のルーティンワークをExcelにさせることができるのです。
今回も最後まで読んでいただきありがとうございました。
今回のサンプルファイルは、No262です。