金曜日のExcelが落ちる件、きのう、Windows11なら全部落ちるわけではなくて、上手く行くマシンもあるらしいことが分かった。
ちょっと思い当たることがあったので、修正してダメなマシンで実行してもらったのだけど、やっぱり落ちてしまう。
もう、策が思いつかないので、落ちる部分をコメントアウトして様子を見てもらうことにした。
コメントアウトすれば、動くことは、金曜日に確認しているので大丈夫だとは思うんだけど、原因がわからない。
その後、ふと思いついて社内版生成AIにコードを読ませて、現状(Windows11のマシンによって落ちる)を説明する文章を入力して問題ないかきいてみた。
そしたら、複数の答えの中に
アクティブコントロール: SetFocus メソッドは、そのコントロールをアクティブにするもので、すでにアクティブなコントロールからフォーカスを移動します。
したがって、SetFocus を呼び出す前に他のコントロールがアクティブになっていないと、エラーが発生することがあります。
というのがあった。
確かに、フォームを表示した直後にSetFocusをしている。(フォーカスを移動しているわけではない)
これかもしれないと思い、きょう、時間を取ってもらい、この部分をコメントアウトして実行してもらうと上手く行った。
どうやら、こいつが原因だったらしい。
何でこんなコードを書いたのか既に覚えてないのだけど、今見るとSetFocusをする必要はない気がする。
実際、動作にも問題ない。
解決に結構時間が掛かったけど、問題が解決して良かった。
これから、SetFocusを使うときは注意することにする。
--
No comments:
Post a Comment