アクティブなワークシートを新しいワークブックにコピーし、その新しいワークブックを保存して閉じようとしています。これは、アクティブなワークシートのフォーム (ボタン) をクリックするとトリガーされます。ボタンは、保存する前に新しいワークブックで削除されます。
アクティブなワークシートで数式を使用しています。値と追加の書式設定のみをコピーしようとしています。
新しいワークブックには値が表示されず、代わりに空のセルのみが表示されます (数式も表示されませんが、もちろん問題ありません)。具体的には、間接数式を含むセルをコピーするときに問題が発生するようです。元のワークブックの他のシートへの単純な参照を使用するセルでは問題ないようです。
コードは次のとおりです。
Sub CopyRemoveFormAndSave()
Dim RelativePath As String
Dim shp As Shape
Dim testStr As String
' Copy and Paste Active Sheet
ActiveSheet.Copy
With ActiveSheet.UsedRange
.Value = .Value
End With
' Remove forms
For Each shp In ActiveSheet.Shapes
If shp.Type = 8 Then
If shp.FormControlType = 0 Then
testStr = ""
On Error Resume Next
testStr = shp.TopLeftCell.Address
On Error GoTo 0
If testStr <> "" Then shp.Delete
Else
shp.Delete
End If
End If
Next shp
' Save New Workbook and Close
Application.DisplayAlerts = False
RelativePath = ThisWorkbook.Path & "\" & ActiveSheet.Name & "_Reporting_" & Format(Now, "yymmdd") & ".xlsx"
ActiveWorkbook.SaveAs Filename:=RelativePath
ActiveWorkbook.Close
Application.DisplayAlerts = True
End Sub