今日は以下を勉強した。
・ActiveXコントロール
・Findメソッド(Find,FindNext,FindPrevious)
昨日フォームコントロールを勉強していた時に発見したプロパティがあった
そのプロパティは「ListFillRangeプロパティ」
ネット検索したページで、Excelでフォームコントロールのコンボボックスにセル範囲を設定する方法を解説しているページで発見
それをヒントに、ExcelVBAでコンボボックスにセル範囲を自力で設定する事が出来た
が、今日ActiveXコントロールの勉強をしたページに普通にListFillRangeプロパティが使われていた。。
前日のちょっとした頑張りが無駄になった気がする
まあとりあえず、ワークシートオブジェクトのOLEObjectsのAddメソッドでActiveXコントロールを追加出来る事から勉強開始
フォームコントロールと同じで、OLEObjectオブジェクトのプロパティとかメソッドで色々出来るっぽい
なので自分なりに分かりそうなプロパティとかを使って色々やってみた
やっぱり実際に動かすと頭に入る感じがする
そしてFindメソッドだ
以前使っていたからなんとなく覚えていた
しかし実際に使う事を考えると、かなり躊躇してしまう事が色々書かれていた
詳しくは以下に↓
https://www.limecode.jp/entry/trap/find-method
https://excel-ubara.com/excelvba4/EXCEL225.html
1.オートフィルターによる非表示セルを見つけられない
2.処理速度が遅い
3.指定オプションがシート操作とリンクしている
4.「値」で検索した場合は、表示形式に依存した検索になる
とりあえずざっとこの4項目
この中でも最後の4が一番厄介じゃないかと思った
列幅が足りなくてセルの値が表示できずに、「#####」と表示されているだけで検索結果にマッチしない
数字で検索しているのに、セルの表示形式がカンマ区切りだから検索結果にマッチしないとか制約がありすぎる
ここまで色々あると進んで使おうと思えない
なので1つの手段として考える位で留めようと思う