[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『マクロ実行中、マクロの動作が止まった様になる』(mcx32503)
Excel 2016のマクロ実行についての質問です。
Excel2016に変えてからマクロの実行中にマクロの動作が止まった様に遅くなることがあります。
マクロの動作が遅くなった時、マクロを実行した状態で画面上のExcelシートをクリックすると再び動作し始める様な気配もあります。最終的には異常終了せずに最後まで正常することができるのですが、時間が掛るのと状態を見ている必要があり面倒です。
どなたか改善方法をご存じの方、その方法をお教え願えませんか?
宜しくお願いします。
< 使用 Excel:Excel2016、使用 OS:Windows7 >
全て該当しなければ他の方の回答をお待ちください
エクセルが遅くなる原因は様々なようですよ。
でわ
(隠居じーさん) 2018/09/07(金) 12:30
ご助言ありがとうございます。やり方がまずければ追加でご指摘ください。
Sub A_抽出()
Dim wb1 As Workbook, ws1 As Worksheet, ws2 As Worksheet, ws3 As Worksheet, ws4 As Worksheet Dim r2 As Long, r3 As Long, r4 As Long, c4 As Long Dim file_name As String, sheet_name As String, obj_name As String Screen_Update False Change_Dir ThisWorkbook.Path Set ws2 = ThisWorkbook.Worksheets("対象ファイル") Set ws3 = ThisWorkbook.Worksheets("抽出") Set ws4 = ThisWorkbook.Worksheets("集計") Delete_Rows ws4, 4, Last_Row(ws4) r2 = 4 r4 = 4 Do While ws2.Cells(r2, "B").Value <> "" Debug.Print r2, ws2.Cells(r2, "B").Value file_name = ws2.Cells(r2, "B").Value Set wb1 = Workbooks.Open(file_name) For r3 = 4 To Last_Row(ws3) c4 = Column_Number(ws3.Cells(r3, "A").Value) ws4.Cells(r4, c4).WrapText = True ws4.Cells(r4, c4).VerticalAlignment = xlTop If ws3.Cells(r3, "B").Value <> "" Then sheet_name = ws3.Cells(r3, "B").Value Set ws1 = wb1.Worksheets(sheet_name) End If If ws3.Cells(r3, "D").Value <> "" Then If ws3.Cells(r3, "D").Value = "OBJECT" Then obj_name = ws3.Cells(r3, "E").Value ws4.Cells(r4, c4).Value = ws1.OLEObjects(obj_name).Object.Value If ws1.OLEObjects(obj_name).Object.Value Then Fill_Color ws4, r4, r4, c4, c4, 6 End If Else ws4.Cells(r4, c4).NumberFormatLocal = ws3.Cells(r3, "E").Value ws4.Cells(r4, c4).Value = ws1.Range(ws3.Cells(r3, "D").Value).Value End If End If Next r3 wb1.Close savechanges:=False Set wb1 = Nothing DoEvents ' <=== ここに入れました r2 = r2 + 1 r4 = r4 + 1 Loop Draw_Rules ws4, 4, Last_Row(ws4), Column_Number("A"), Last_Column(ws4) Set ws2 = Nothing Set ws3 = Nothing Set ws4 = Nothing Screen_Update True End Sub (mcx32503) 2018/09/07(金) 13:23
ある意味、処理が正常に完了するための「おまじない」ですね。
その前に、マクロ起動時に
「自動計算」を停止にしておいて、影響が無いのなら、
マクロの最初に「手動計算」
マクロの最終に「自動計算」
をしておくのも効果的です。
(a_h******) 2018/09/10(月) 20:31
対話形式に戻った時に手動計算のままになっていることに気づかず、手を加えたものを再計算せずに開示してしまうことって考えられますよね?大丈夫でしょうか?
(mcx32503) 2018/09/11(火) 08:50
(TAKA) 2018/09/11(火) 09:35
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.