2017-10-27 18 views
0

私はc#.netコードを使用してExcelを生成している間にマクロを追加しようとしています。 Excelを生成している間、私は、Visual BasicプロジェクトへExcelファイルにマクロを追加する

のプログラムによるアクセスは、私はExcelのオプションで、信頼できるマクロを作成する必要が理解

信頼されていない、このエラーを得ました。 これをC#.codeでどのようにアクティブにすることができますか?

これは私が使用したコードです。

StringBuilder sb; 
VBIDE.VBComponent xlModule; 
sb = new StringBuilder(); 

xlApp.AutomationSecurity = Microsoft.Office.Core.MsoAutomationSecurity.msoAutomationSecurityByUI; 
sb.AppendLine("Private Sub Worksheet_Change(ByVal Target As Range)"); 
sb.AppendLine("Target.Offset(0, 2).ClearContents"); 
xlModule = wrkBook.VBProject.VBComponents.Add(VBIDE.vbext_ComponentType.vbext_ct_StdModule); 
xlModule.CodeModule.AddFromString(sb.ToString()); 
+1

Excelのオプションメニューから=>マクロの設定セキュリティセンターで確認してVBAプロジェクトオブジェクトmodel'に 'トラストアクセスをマークしてください。 –

+0

山本哲也 - 私はC#.codeを実装したいと思っていましたが、ユーザは毎回エクセルオプションの儀式を設定することはできません。 – baskar

+0

理論的には、あなたのC#コードからアクセスできるように見えるVBIDEを使って変更することができます。 **ユーザー**がExcelを終了して再度開くまで、変更が反映されないという提案も見たことがあります。プログラムによる終了は変更を保存しません。 グーグルはVBScriptでレジストリ設定を変更しました。 –

答えて

0

registryトラフ変更することができます。

Microsoft.Win32.Registry.SetValue(@"HKEY_CURRENT_USER\Software\Microsoft\Office\" 
            + xlApp.Version + "\Excel\Security", "AccessVBOM", 1); 
関連する問題