2016-09-07 29 views
0

リンクされているワークブックを動的に作成しています。リンクされた警告を表示しないようにする必要があります。 Workbook_Open() subに適切なコードを入力します。VBA .VBProject.VBComponents.Item( "ThisWorkbook")。CodeModule.AddFromStringが機能しません。

問題は、コードが実際にブックに追加されていないことだけです。

' do not display alerts while processing so many files 
Application.DisplayAlerts = False 
wbNew.SaveAs FileName:=path, FileFormat:=51, CreateBackup:=False 

' add a little Workbook_Open method to the new workbook's ThisWorkbook dynamically 
' this line doesn't actually do anything - why? 
wbNew.VBProject.VBComponents.Item("ThisWorkbook").CodeModule.AddFromString (_ 
    "Private Sub Workbook_Open()" & vbCrLf _ 
    & " Application.AskToUpdateLinks = False" & vbCrLf _ 
    & " Application.DisplayAlerts = False" & vbCrLf _ 
    & "End Sub") 
wbNew.Save 
wbNew.Close 

ファイルが作成され、すべてが何のコードが実際に私はちょうど作られた、それは通常のブックだとはThisWorkbookが空白のワークブックに追加されていないことを除いて、十分です。 (私は、動的なコードの記述に関する警告を抑制していないことも確認しました。通常のsaveasプロンプトだけです)。

どうすればこの作品を作成できますか?

+3

あなたはマクロ有効形式として、ブックを保存していないVBProject許可がすでに、この意志を付与されていない場合は...あなたはおそらく –

+0

@Comintern 'xlOpenXMLWorkbookMacroEnabled'(52)「有効オープンXMLブックのマクロを」したいですエラーが発生します。 –

+1

@DavidZemens - 設定されていないときに何が起こったか忘れていたので、私はオプションをチェックしました。私は@ TimWilliamsが頭に釘を打つと思う。 – Comintern

答えて

1

これは、私の作品は、何のプロンプトやミッシング・コード:フィルsetttingマクロプロンプトの

Sub test() 

    Dim wbnew As Workbook 

    Set wbnew = Workbooks.Add 


    Application.DisplayAlerts = False 
    wbnew.SaveAs Filename:="C:\temp\abc.xlsm", FileFormat:=XlFileFormat.xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False 

    wbnew.VBProject.VBComponents.Item("ThisWorkbook").CodeModule.AddFromString (_ 
     "Private Sub Workbook_Open()" & vbCrLf _ 
     & " Application.AskToUpdateLinks = False" & vbCrLf _ 
     & " Application.DisplayAlerts = False" & vbCrLf _ 
     & "End Sub") 

    wbnew.Close True 
    Application.DisplayAlerts = True 

End Sub 

- >オプション - >セキュリティセンターを - >これまでマクロの設定は、プロンプトを取り除くありませしまいます。 enter image description here

関連する問題