Excel 2016を使用しているが、VBAのプログラムを埋め込んだファイルを複数起動し、同時実行していると挙動がおかしくなった。
「Application.StatusBar」でステータスバー表示を行っているところが思った通りに表示されなかったり、「Application.OnTime」で片方のファイル実行中にもう片方の実行待ちが発生したりと…。
調べてみると、Excel 2013以降は複数ファイルが同一インスタンスで起動されるようだ。
(2010以前は、別インスタンス。)
そこで、Excel 2013以降で複数ファイルを別インスタンスで起動し、VBAの実行が互いに影響しないようにする方法です。
なお、今回のバージョンは以下です。
- Windows 10 Pro(64bit)
- Microsoft Excel 2016(365 ProPlus)
Excelファイルを通常の開き方で開くと同一インスタンスで起動される
エクスプローラーからExcelファイルをダブルクリックして起動したり、Excelを起動した状態からファイルを指定して開く場合などは、同一インスタンスで起動されている。
タスクマネージャーで確認してみると、以下のように1つのアプリケーション内(インスタンス)に複数ファイルが含まれていることが分かる。
別インスタンスで起動する方法
では、別インスタンスで起動するにはどうすればいいか。
まず、Excel(ファイル)を1つ起動し、タスクバーにExcelアイコンがあるので、それを右クリックする。
そして、下から3つ目の「Excel 2016」のところを「Alt」キーを押しながら左クリックで起動する。(Altキーは少しの間、2~3秒押しっぱなし。)
そうすると、新しく別のExcelを起動するかメッセージが出てくるので、「はい」を選択すると別インスタンスでExcel起動完了。
ここから目的のファイルを指定して開けばよい。
改めてタスクマネージャーで確認してみると、以下のようにそれぞれ別のアプリケーション(インスタンス)で起動されていることが確認できた。
以上。
コメント