16

私の Excel ファイルには多くの数式が含まれているため、開いたらすぐに計算モードを手動に設定したいと考えています。そうしないと、計算が自動的に開始され、何時間も待たなければなりません。このページを見つけました:

http://excel.tips.net/T001988_Forcing_Manual_Calculation_For_a_Workbook.html

これでうまくいくはずです。ただし、私のExcelファイルでは機能しません。VBAコードの「ThisWorkbook」セクションに、次のコードを入力する必要があると記載されています。

Private Sub Workbook_Open()
    Application.Calculation = xlManual
    Application.CalculateBeforeSave = False
End Sub

指摘されたように、私の場合は機能しません。誰かが別の解決策を持っていますか?

4

1 に答える 1

9

これを回避する最善の方法は、開きたいファイルと同じフォルダーに「launcher.xlsm」という名前の Excel を作成することです。'launcher' ファイルで、次のコードを 'Workbook' オブジェクトに入れますが、定数TargetWBNameを開きたいファイルの名前に設定します。

Private Const TargetWBName As String = "myworkbook.xlsx"

'// First, a function to tell us if the workbook is already open...
Function WorkbookOpen(WorkBookName As String) As Boolean
' returns TRUE if the workbook is open
    WorkbookOpen = False
    On Error GoTo WorkBookNotOpen
    If Len(Application.Workbooks(WorkBookName).Name) > 0 Then
        WorkbookOpen = True
        Exit Function
    End If
WorkBookNotOpen:
End Function

Private Sub Workbook_Open()
    'Check if our target workbook is open
    If WorkbookOpen(TargetWBName) = False Then
        'set calculation to manual
        Application.Calculation = xlCalculationManual
        Workbooks.Open ThisWorkbook.Path & "\" & TargetWBName
        DoEvents
        Me.Close False
    End If
End Sub

定数 'TargetWBName' を、開きたいブックの名前に設定します。このコードは、計算を手動に切り替えてから、ファイルを開きます。その後、ランチャー ファイルは自動的に閉じます。*注: このファイルを開くたびに「コンテンツを有効にする」ように求められたくない場合 (セキュリティ設定によって異なります)、「me.close」を一時的に削除して、ファイルが閉じないようにし、ファイルを保存してください。信頼できるように設定し、再度保存する前に「me.close」呼び出しを再度有効にします。または、 False を Trueafter に設定することもできますMe.Close

于 2013-07-19T00:24:44.870 に答える