実務では、検索フォームは、絶対に必要ですよね。
そんな時に、Excelで作成すると思いますが、結構、Excelで作成するのは大変です。
しかし、いまからACCESSを利用するにしても・・・・・・・
そんなときに、配列を使うと思います。
しかし配列も、取っつきにくいです。
目次
検索フォームを作成するとき
こんにちは。伊川(@naonaoke)です。
ACCESSを勉強して、Excelを勉強して、今は、少し、まともな検索フォームを作成できるようになりました。
しかし、ここまで、到達するまでに、結構な苦労がありました。
ここまでの苦労話をしようと思います。
勉強するまでは、【Ctrl+F】を利用していましたが、ある意味、最強の検索方法です。
このブログはこんな人にお勧め
- Excelや、ACCESSで検索フォームを作成したい人
- 検索フォームを作成する際に、配列を利用しようと思っている人
- ACCESSで検索フォームを作成したい人
このブログを読み終わるころには・・・・・
検索フォームを作成するには、様々な方法があります。配列、ワークシート関数、ACCESSなど、どの方法を選択するのかは自由です。
私の結論は、ACCESSで作成するか、Worksheetfunctionを利用します。
検索フォームを作成するための条件
検索フォームを作成するために、絶対に念頭に置くべきことは、主キーを設定することです。
Excelでは、主キーという概念はありません。
しかし、唯一のキーを設定することが原則です。
この原則を忘れてはいけません。
かつての私は、検索のキーワードを、沢山、設定することで、より、詳細なデータ抽出ができると思っていました。
しかし、この考え方は、間違いです。
原則は、唯一のキーで一発検索。
これです。
Excel VBA ユーザーフォームで、検索フォームを作成を、紹介した背景
この記事を作成した背景は、お客様からの問い合わせで、キャンペーンコードを検索するために作成しました。
その場合に、Excelのみで完結するか、ACCESSとExcelを連携させるかで議論しました。
結果は、Excelのみで、完結するという結論になりました。
Excelのみで利用するメリット
Excelは、すでに、市民権を得ていて、誰もが操作に抵抗がない。
Excelのみで利用するデメリット
私が紹介したコードでは、メンテナンスが複雑で、作成者が、退社したら、メンテナンスが不可能。
ExcelとACCESSの連携で利用するメリット
コード自体は、複雑であるが、やっていることは、至極カンタン。
ExcelとACCESSの連携で利用するデメリット
ACCESSを利用するということに関して、抵抗勢力に、ACCESSを啓蒙することが必要。
Excelのみで、検索フォームを作成する場合
検索データが、増える可能性があります。
その、検索データが増えた場合でも対応できるように作成しなければなりません。
だから、私は、動的配列を利用しました。
しかし、WorkSheetFuntionと二重ループを理解したら、配列を利用しなくても実装はできます。
その方がはるかにカンタンです。
二重ループが理解できていない人は、下記の記事を参照してください。
それほど、難しいものではありません。
要するに、シート関数をVBAで利用できれば、メンテナンスも楽です。
ACCESSのみで、検索フォームを作成する場合
特にデメリットはありません。
VBAのコードは、わずか3行で完成です。
ACCESSを触ったことがないから、ACCESSを受け入れないのです。
複数のキーワードで検索することも、カンタンです。
データベースを前提に、ACCESSは作成されていますので、このようなことはACCESSのフィールドなのです。
データが30万件くらいあっても、ストレスを感じることなく、検索できます。
ACCESSとExcelを連携して、検索フォームを作成する場合
またしても、競馬ネタで恐縮です。
Excelのユーザーフォームで検索条件を設定します。
このようにACCESSから、データ転送できます。
後は、セルに色を付けるVBAのみを書いています。
このコードは、ワイルドカードで記載しています。
結局、複数の検索条件を合わせて、唯一のキーを作成しています。
その作成したキーで、データ群を転送しています。
データが、30万件あっても、ストレスなく検索できます。
30万件のデータをExcelで管理できるのか?
はっきり言って無理です。
Excelを利用している人なら、理解できると思います。
その無理を可能にするのが、ACCESSです。
月と太陽の関係だと思います。
ACCESSが月、Excelが太陽でしょうか?
先ほど紹介した競馬の検索フォームは、実際に私が売っているものです。
ポイントは、クリックのみで完結するように作成しています。
詳しくは下記の書籍を読んでいただくと理解できます。
この書籍を読むと、ご自身で、信じられないようなアプリを作成できるようになります。
ここがポイント
VBAのスキルは、自分が好きなものを作成することではありません。ただの、VBAのスキル自慢になっては、そのシステムは、メンテナンスが不可能になります。どのようなコードで処理をするのかを考えられることも含めて、VBAのスキルなのです。
まとめ
ExcelのVBAは特殊で、配列を知らなくても何とかできます。
但し、プログラムというスキルを磨くなら、配列は、必須のものです。
配列は、私もいまだに、コツコツ勉強しています。
その勉強が終わったときには、また、別の世界が見えるかもしれません。
今回も最後までお読みいただきありがとうございました。
今回のサンプルファイルはありません。
わからない事を延々と考えるのは、無駄です。
- なんで作動かないの?
- もうやだ!VBAなんか嫌い!
- ネットで調べても情報がない!
必ず作動するコードが、ここにあります。