柳井E社の会員管理.mdb。「起動にブチ時間が掛かる」と言うので原因を調べた。
※ 原因
- 起動時に Excel.exe の フルパス を検索しているため。
- 検索には、WindowsAPI の "SearchTreeForFile" (my関数:Get_FullPathForFile())を使用。
- 一度検索するとキャッシュされ、次からは早いのでは?(表現がおかしいか)
当初は、Excel のフルパスをイニファイルに持つ予定であったが、開発元と使用者のパソコン環境の違いがあるので、検索することにしたもの。
※ 対策
- Excel のフルパスをイニファイルに持つことにする。
- 起動時イニファイルを WindowsAPI "GetPrivateProfileString" (my関数:get_iniString())で読んでフルパスを取得する。
- 取得したフルパスが "" だった時、または dir(フルパス) で "" が返って来た時は、メッセージを出して、WindowsAPI の "SearchTreeForFile" で検索する。
- その後、WindowsAPI "WritePrivateProfileString" (my関数:put_iniString())でフルパスを書き出しておく。