まずで、あなたの時間と、これを見直しにおける支援をありがとう/ wの...ながら常に表示窓の形を維持VS2005を使用しているVB.NETのVSTO Excelアドイン。元の(つまりVBA)バージョンでは、ユーザーがまだExcelアプリケーション内にいる間は常に上に浮かぶモードレスのUserForm(frmMain
)が表示されますユーザーがExcel以外の別のウィンドウに移動した場合は表示されません。エクセルアドイン - !私はエクセルVBAブックをアップグレードしようとしている</p> <p>エクセル全ての
たとえば、Excel内でユーザーはワークシートのタブをクリックして任意のセルなどを選択でき、ユーザーフォームは引き続き表示されます。これはまさに私が好きなのです。
問題は、新しいVSTOアドインでは、この同じ動作を模倣するためにWindowsフォームを取得できないということです。フォームがワークシートの後ろに隠れてしまう(i.e.-は、ワークシートを活性化させる)
私はモードレスフォームとしてフォームを表示するfrmMain.Show()
を使用しますが、今のユーザーは、Excelワークシートをクリックします。
私は手動でAlt-Tabを押してフォームをビューに戻すことができますが、ユーザーがExcelアプリケーションを終了していない限り、Excelワークシート上に常に浮いている必要があります。
フォームをTopMost
に設定するなど、さまざまなことを試しましたが、Excelの外を含めてどこでもフォームがTopMost
になります。さらに悪いことに、ユーザーが通常Excelのダイアログボックスを起動させるような操作を行った場合(- 開いているブックを閉じ、「変更を保存しますか...」)警告ダイアログボックス自体frmMain
フォーム(frmMain
がTopMost
のため)の後ろに隠れてアクセスできません。
フォームを希望の方法(つまり、VBAで行ったのと同じ方法)で動作させるにはどうすればよいですか?
ありがとうございました!
ロブは