Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(指定なし : Excel 2013)
auto_openでFileCopy実施時の表示について
投稿日時: 21/01/27 12:38:49
投稿者: やま3

システム仕様上(RPAに組み込み)auto_openでFileCopyを実行しています。
 
FileCopy時にSHEETを画面表示したいのですが、エクセル起動時に表示されるエクセルロゴマックのままFileCopyが実施され画面が表示されません
表示される方法ご教示ください
 
コピー終了後は自動終了です
 
********VBAです*******
 
Sheets("画面").Select
  Range("A1").Select
 
  Cells(2, 1) = "コピー中"
   
  Application.Wait [Now()] + 5000 / 86400000 '5秒待機
   
  ActiveWindow.WindowState = xlMaximized
   
  On Error Resume Next
     
  Kill "C:\XXXX\YYYY.mdb"
   
  FileCopy コピー元, "C:\XXXX\YYYY.mdb"
 

回答
投稿日時: 21/01/27 14:45:09
投稿者: simple

ちょっと再現しませんね。当方、2010。(Win7)
失礼ですが、そのイベントプロシージャのなかに、
    Application.ScreenUpdating = False
などが入っていると言うことはないですよね。

回答
投稿日時: 21/01/27 15:20:14
投稿者: WinArrow
投稿者のウェブサイトに移動

当該ブックは、シートを更新していますから、
通常ですと、「上書き保存」に関するメッセージが表示されるはずですが、
RPA側でブックを強制的に閉じていませんか?
 
シートを表示するタイミングがないものと思います。
 
ファイル複写する前に、
Workbooks.Add
などで、強制的に別ブックを開き、メッセージを表示し、
用事が済んだら、保存せずに閉じればよいと思います。
 
尚、Auto_openよりは、WorkBook?openイベントをお勧めします。
 

回答
投稿日時: 21/01/27 18:59:11
投稿者: よろずや

AUTO_OPEN中に実行できることは限られています。
(かつては。今は改善されているかも。)
OnTimeでAUTO_OPENの外に出すのが常套手段でした。
 

Sub Auto_Open()
    Sheets("画面").Select
    Range("A1").Select
    Cells(2, 1) = "コピー中"
    Application.OnTime Now() + 5 / 86400, "Auto_Open2"
End Sub

Sub Auto_Open2()
    ActiveWindow.WindowState = xlMaximized
    On Error Resume Next
    Kill ThisWorkbook.Path & "\YYYY.accdb"
    FileCopy ThisWorkbook.Path & "\コピー元.mdb", ThisWorkbook.Path & "\YYYY.mdb"
    ThisWorkbook.Saved = True
    Application.Quit
End Sub

投稿日時: 21/01/28 13:16:25
投稿者: やま3

ご回答ありがとうございました
 
OnTimeでAUTO_OPENの外に出すのが常套手段でした。
 
で解決しました