販売見積もりを作成して書式設定する Excel VBA マクロがあります。結合されたセルを自動調整する機能があります。説明フィールドには長いものと短いものがあるため、この関数を使用して説明フィールドを自動調整します。典型的な見積もりでは、この関数は約 40 回呼び出されます。マクロは 1 秒以内に完了します。まったく同じマクロをもう一度実行すると (おそらく、表示方法の設定が異なる可能性があります)、30 ~ 60 秒以上かかります。次のブロックを除いて、実行ごとに遅くなるマクロの残りの部分はありません。
まったく同じ入力セットに対して、このコードの実行を遅くする可能性のあるものはありますか?
Sub AutoFit_Height(ByVal Target As Range)
Dim MergeWidth As Single
Dim cM As Range
Dim CWidth As Double
Dim NewRowHt As Double
With Target
.MergeCells = False
CWidth = .Cells(1).ColumnWidth
MergeWidth = 0
For Each cM In Target
cM.WrapText = True
MergeWidth = cM.ColumnWidth + MergeWidth
Next
'small adjustment to temporary width
MergeWidth = MergeWidth + Target.Cells.count * 0.66
.Cells(1).ColumnWidth = MergeWidth
.EntireRow.AutoFit
NewRowHt = .RowHeight
.Cells(1).ColumnWidth = CWidth
.MergeCells = True
.RowHeight = NewRowHt
End With
End Sub