1-5 ブック追加でユーザーフォームが消えてしまった(全ツール共通)
下記のようなマクロで"ScreenUpdating = False"で画面の動きを止めた状態で、"Workbooks.Add"でブックを追加した場合、
(なお、これはマクロ専用ブックでシートは非表示にしてあります)、Excel2010までは問題ないが、Excel2016では、ユーザー
フォーム及びステータスバーが表示出来なくなった。
Sub 一括取得()
Application.ScreenUpdating = False
 
ブック追加
Workbooks.Add  ’←ここでーザーフォーム消える
Call 取得準備
 
●● ----以下はメイン実行マクロ - ---●●
For sh = 1 To meino(0, 0)
 
    UserForm1.txt1 = sname & "データダウンロード中---" & sh & "/" & meino(0, 0)
 
If sh = 1 Then
    MsgBox "No1 銘柄実行中" ’不具合画像コピーの為ストップ
End If

【図1-5a】ステータスバーが表示されない
上表でははマクロの進捗をユーザーフォーム表示するマクロにしたが、Excel2016ではブック追加で、ユーザーフォームが
消えてしまったので、進捗をステータスバーに表示を追加しました。しかし下図のようにリボンバーもステータスバーも表示さ
れない(マクロは正常に動いている)。(メッセージボックスでマクロを止めて画像をコピーした)



【図1-5b】Excel2010で実行した正常画面
Excel2003/2010では、ステータスバーに進捗も表示され問題なし。


(1) マクロ改善
画像を1度表示させ"Application.ScreenUpdating = True"、オペレーションシステムに渡し”DoEvents”、再度画像ストップ
を追加で、ユーザーフォームは見えないが、取りあえずステータスバーに進捗表示を追加し、進捗はステータスバーで見る
方式に改善しました(なお、StatusBarに表示していた別情報は削除する必要あり)。【図1-5c】参照
Sub 一括取得()
Application.ScreenUpdating = False
 
ブック追加
Workbooks.Add
Call 取得準備
 
Application.ScreenUpdating = True
   DoEvents
Application.ScreenUpdating = False
 
●● ----以下はメイン実行マクロ - ---●●
For sh = 1 To meino(0, 0)
 
    UserForm1.txt1 = sname & "データダウンロード中---" & sh & "/" & meino(0, 0)
    Application.StatusBar = sname & "データダウンロード中---" & sh & "/" & meino(0, 0)
 
If sh = 3 Then
    MsgBox "No3 銘柄実行中" ’不具合画像コピーの為ストップ
End If

【図1-5c】Excel2016では進捗はステータスバーに表示
リボンバーも表示し、ステータスバーも正常に表示できるようになりました。
ただしユーザーフォームは消えたままですが、どこに行ったのかな? 暇なとき別途調べます。
Excel2016はーザーフォーム表示に色々問題があり不人気のようなので、その内Excel2010と同じになる事を期待している。




【戻る】    【HPへ】