Excel VBA で実用的な処理速度を実現し様々な画像フォルダに対応した検索と拡大表示などのプログラムを作成しましたのでここに記します。
<追記> 2019.10.28
・更に機能を追加しました。番号入力が From 、To になり連続で変更・削除が可能になりました。
・削除したとき検索結果の一口コメントに「既に削除済み」と表示し以後の処理はスキップします。
・データを追加した場合はその結果を検索します。
・検索の前に必要な場合テーブルをソートし直します。
・検索対象・一口コメントは新しい文言が入力された場合追加処理をします。
・その場合追加するかしないか選択できます。
・開発専用ボタンも付けました。パスワードを入力すると VBE を開きます。
・最新画面は次のようになりました。
以下に、プログラム設計書 及び ソース・コード をダウンロードできるようにしました。
[.txt]がアップロードできないので [.pdf] で作ってあります。参考になさってください。
<追記> 2019.10.22
・検索入力部の [検索対象] [一口コメント] でも項目の追加ができるように改良しました。追加したものは一覧の最後に入ります。
・使用できる画像の種類を [.jpg] [.png] [.bmp] [.gif] に拡大しました。
・ファイル追加の時に拡張子の入力をしなくて良いように変更しました。同一ファイル名で拡張子の違うものがある場合[.jpg] [.png] [.bmp] [.gif]の順序で調べますので最初に見つかったものだけがテーブルに登録されます。
・テーブル名を [テーブル1] から [DataBase] に変えました。[テーブル1] だと自動で作られるものと同じ場合があり既にあるとエラーに成るからです。
・データベースの取得の時、既にあるものは変更しないで存在しないものだけ追加するようにしました。結果はファイル作成日の昇順でソートをします。
・エラーの処理の徹底を図り異常終了をしないようにしました。
・画面のデザインを少し変更しました。
これが初期画面です。Excel ブックを開くと自動的にプログラムが起動してこの画面が出ます。
ヘルプボタンの説明をします。
のボタンはプログラムの動作を説明したシートを表示します。
データベース取得ボタンの処理です。
[データベース] シートの[テーブル1] にデータベーステーブルが作成されます。
[OK]で作成します。
使用可能な画像形式は [jpg] と [png] だけです。
最初だけ画像ファイルのフォルダのパスを入力します。
「[データベース] シートの[テーブル1] にデータベーステーブルが作成されました。」
というメッセージが出ます。
データ検索の処理速度です。
絵手紙45件を普通に検索した時11秒かかりました。
絵手紙45件を縮小画像も作成して検索した時26秒かかりました。
絵手紙45件を縮小画像がある場合検索時間は1秒に短縮されました。
新しい検索対象でデータを追加する場合です。
そのデータのあるフォルダパスを入力します。
追加データはテーブルの最後に追加されます。
追加処理が完了しました。
同じファイルをもう一度追加すると、「既に追加されています。」とエラーになります。
追加したデータを検索しました。
正しく表示されます。
このデータを変更するには、先ずNo.を入力して読込をします。
すると追加時は入力領域だったところに変更可能な箇所だけ変更できるようにロックされて表示されます。
変更ボタンで変更を実行します。
変更が完了しました。
同じ条件で検索し直すと一口コメントが「TEST 」から「TEST2」に変わっています。
次は削除してみます。
変更のときと同じ様にナンバーを指定して読込をします。
削除ボタンで削除します。
その旨のメッセージが出ます。
追加したデータを検索すると「見つかりませんでした。」というメッセージが出ます。
検索後にNo.3を読み込みます。
次のデータを湯見込むことが出来ます。
変更後でも可能です。
次を読み込みボタンでNo.4が読み込まれます。
次々と変更していく場合に便利です。
画像の拡大表示も同じことが出来ます。先ずNo.6を拡大表示します。
次を拡大表示するには一旦拡大表示をを閉じてから次を拡大ボタンをクリックします。
そうしないと拡大表示の画面がたくさん出来てしまいます。
するとNo.7が拡大表示されます。
私の作ったプログラムの概要は以上です。
検索データ件数が数千件までならとても実用的な処理速度です。
流石に1万件以上に成ると縮小画像がないと処理が遅すぎます。
はじめに時間はかかりますが、縮小画像を作れば1万件を検索しても3分半くらいで処理が終わります。これなら時間的に許せる範囲だと思います。
ちなみに Visual C# で同様のプログラムも作って処理時間を測ってみましたが Excel VBA のプログラムで縮小画像がある場合は同等の処理時間でした。
なお、データベースの追加・変更・削除の処理は元の画像フォルダ内のファイルにはなんの影響も与えません。検索可能なデータベースの処理だけにとどまります。