質問編集履歴

1 修正

kihokutarou

kihokutarou score 24

2018/10/21 14:12  投稿

VBAファイル操作の高速化
あるディレクトリにあるすべてのファイルを開いて必要個所をコピーし、一つのブックにまとめる作業をしています。
しかしこの作業が非常に時間がかかります。フォルダ内50程度のファイルでも1~2分。最終的に1000ファイル位を扱うことを考えると、少しでも高速化したいところです。どなたかお知恵を拝借できませんか。
 
大変失礼しました。  
Application.ScreenUpdating = False  
Application.ScreenUpdating = True  
のセットが抜けておりました。描写非表示でなおかつ高速化の手順があればご教示願います。  
```VBA
Sub 各ブック必要個所集合()
   Application.DisplayAlerts = False
   
   Dim dlg As FileDialog
   Dim fold_path As String, i As String
    Set dlg = Application.FileDialog(msoFileDialogFolderPicker)
   ' キャンセルクリック処理
    If dlg.Show = False Then Exit Sub
   ' フォルダフルパスを変数格納
    fold_path = dlg.SelectedItems(1)
   Set mb = ThisWorkbook
   myfdr = ThisWorkbook.Path
   fname = Dir(fold_path & "\*.xls")
   Do Until fname = Empty
   If fname <> mb.Name Then
   Application.EnableEvents = False
   Set wb = Workbooks.Open(fold_path & "\" & fname)
   Application.EnableEvents = True
   
   Sheets("あああああ").Visible = True
   Worksheets("あああああ").Select
   Range("e2:e633").Copy
   mb.Activate
   Worksheets("いいいいい").Select
   Cells(1, 10000).End(xlToLeft).Offset(0, 1).Select
   ActiveCell.Value = x & wb.Name
   ActiveCell.Offset(1, 0).PasteSpecial xlPasteAll
   wb.Close
   End If
   fname = Dir
   Loop
   
End Sub
```
  • Excel

    4482 questions

    Excelは、マイクロソフト社が開発しているデータ集計や分析を行う表計算ソフトの一つです。文書作成や表計算、資料作成などの多彩な機能を備えており、統合パッケージであるMicrosoft Officeに含まれています。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る