起動時に次のコードを使用してワークブックをコンパイルし、Active-X 関連のエラーを防止しています。
Private Sub ThisWorkbook_Open()
Set compileMe = objVBECommandBar.FindControl(Type:=msoControlButton, ID:=578)
compileMe.Execute
End Sub
このコードは、VBE のコマンド バーを自動化し、保護されていないブックでうまく機能します。VBE (パスワード保護) をロックすると、debug->compile オプションが無効になり、上記のコードでエラーが発生します。
これの回避策はありますか?たとえば、VBE の保護を解除してから上記のコードを実行し、すべて同じブックからもう一度保護しますか? 私の知る限り、これにはAPIがないため、これは基本的なタスクではないことを理解していますが、できれば(安定性の目的で)送信キーを使用しない解決策はありますか?
編集: 質問の重複による混乱をお詫びします。重複するようにリンクした質問は、別のExcelインスタンスの別のワークブックでVBEのロックを解除する方法を説明しています.別のインスタンスの同じファイルは、読み取り専用として開きます。
私がやろうとしているのは、同じワークブック自体のロックを解除することです。これに関する問題は、パスワードを要求するウィンドウが開くとすぐにコードがその時点で停止することです。これは、ウィンドウをモーダル ウィンドウとして開いているためです。続行するには、なんらかの形式のユーザー入力が必要です (ウィンドウを非表示にするか、アンロードします)。本当に、これを回避する方法が他にあるのか、それとも私が物事を複雑にしすぎているのか疑問に思っていました.