このコードを実行するとエクセルがフリーズしてしまいます。
とある為替データファイル(600KB)の編集をマクロで実行したい(何度も新規で編集するため)のですが画面がフリーズしてしまいます。たまに最後まで出来ます。長すぎるのでしょうか。省略できる部分があったら教えて欲しいです。(初心者です)
以下そのまま添付
Sub 画面を固定()
Application.ScreenUpdating = False
End Sub
Sub いち()
Call 画面を固定
Cells.Select
With Selection.Font
.Size = 9
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
End With
'セルの結合を解除・折り返して全体を表示するの解除・文字を左詰で表示
With Selection
.WrapText = False
.Orientation = 0
.AddIndent = False
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
.HorizontalAlignment = xlLeft '(文字を左詰で表示)
End With
'列の幅
Selection.ColumnWidth = 2.38
'行の幅
Selection.RowHeight = 12
'列の幅を自動調整
Cells.Select
Cells.EntireColumn.AutoFit
'A列の調整
Columns("A:A").ColumnWidth = 3
'不要行削除
Range("a:a,c:c,e:H,J:R,T:U,X:AA,AC:AO,AQ:Au,Aw:BB,BD:BG,BI:CC").Select
Selection.Delete Shift:=xlToLeft
'円マークを取る
Cells.Replace What:="\", Replacement:="", LookAt:=xlPart, SearchOrder:= _
xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
'円の列の書式
Range("K:K,I:I").Select
Selection.NumberFormatLocal = "#,##0_ ;[赤]-#,##0 "
' 列の入れ替え()
'(建時)
Columns("G:G").Select
Selection.Cut
Columns("B:B").Select
Selection.Insert Shift:=xlToRight
'(建値)
Columns("G:G").Select
Selection.Cut
Columns("C:C").Select
Selection.Insert Shift:=xlToRight
Columns("H:H").Select
Selection.Cut
Columns("e:e").Select
Selection.Insert Shift:=xlToRight
'スクロールで画面左に戻る
ActiveWindow.ScrollColumn = 1
'仕切取引まで行削除
On Error GoTo line
x = Application.WorksheetFunction.Match("仕切取引", Columns("A:A"), 0)
If x = 1 Then
Exit Sub
Else
Rows("1:" & x - 1).Delete
End If
Exit Sub
line:
MsgBox "見当たりません", vbCritical, "(>_<) "
'一行目(仕訳取引)削除
Rows("1:1").Select
Selection.Delete Shift:=xlUp
'オートフィルタ
Rows("1:1").Select
Selection.AutoFilter
'不要列にかかったフィルタを削除
Columns("L:CE").Select
Selection.Delete Shift:=xlToLeft
End Sub
よろしくお願いします。
お礼
ご回答ありがとうございます! アドバイスの通りにプログラムを作成したところ、無事成功しました。