FC2ブログ

最適化マクロ

2017–05–18 (Thu) 21:35
最新マクロは、最適化マクロです。
このマクロを実行する事により、式・名前の定義・マクロを削除します。
既に使用していない過去のデータや、過去の提出書類・前期の請求書等を最適化するために用いるマクロです。
(今使用する書類・書類の原紙・テンプレートへは実行しません)


高確率で最適化してくれます。



Sub 最適化()
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Application.EnableEvents = False
For Each s In activeworkbook.sheets
On Error Resume Next
With s.UsedRange
maxrow = .Find("*", , xlFormulas, , xlByRows, xlPrevious).Row
maxcol = .Find("*", , xlFormulas, , xlByColumns, xlPrevious).Column
End With
Dim test
test = Range(s.Cells(1, 1), s.Cells(maxrow, maxcol))
Range(s.Cells(1, 1), s.Cells(maxrow, maxcol)) = test
Dim obj As OLEObject
'Selects all ActiveX controls on the active sheet and deletes them
For Each obj In ActiveSheet.OLEObjects
obj.Delete
Next obj

Dim shp As Shape

For Each shp In s.Shapes
If shp.Visible = msoFalse Then
shp.Delete
End If
Next shp
Next

Dim n As Name
If activeworkbook.names.count < 1000 Then
For Each n In activeworkbook.names
On Error Resume Next ' エラーを無視
If InStr(n.Name, "Print") = 0 Then
n.Delete
End If
Next
End If


Dim myVBComp
For Each myVBComp In activeworkbook.VBProject.VBComponents
If myVBComp.Type = 100 Then
'Documentモジュール(ThisWorkbokやSheet)なら消去
With myVBComp.CodeModule
.DeleteLines 1, .CountOfLines
End With
Else
'Documentモジュール(標準モージュール、クラスモジュール、Formなど)以外なら削除
Application.VBE.ActiveVBProject.VBComponents.Remove myVBComp
End If
Next myVBComp
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub
最適化前

最適化前

最適化後

最適化後

減りました~
スポンサーサイト



« 主任技術者-2 | HOME |  あらたな最適化 »

コメント

コメントの投稿

 
管理者にだけ表示

 | HOME | 

プロフィール

はる

Author:はる
FC2ブログへようこそ!

最新記事

最新コメント

フリーエリア

月別アーカイブ

カテゴリ

ブロとも申請フォーム

検索フォーム

RSSリンクの表示

リンク