このコードを実行するとエクセルがフリーズしてしまいます。
とある為替データファイル(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
よろしくお願いします。
お礼
ご回答ありがとうございます。早速試したところzabu-----nさんのおっしゃるとおりでした。 また、記述の仕方についてもよく確認してみたところ多々無駄な記述が多いことにも気づくことができました。大変勉強になりました。本当にありがとうございました。