示例#1
0
        public void ExecuteMacroFromScript(string macroName, string macoScript, params object[] parameter)
        {
            try
            {
                var vbModule = _wordDoc.VBProject.VBComponents.Add(Microsoft.Vbe.Interop.vbext_ComponentType.vbext_ct_StdModule);
                vbModule.CodeModule.AddFromString(macoScript);
                int      size = parameter.Length;
                object[] para = new object[30];
                for (int j = 0; j < 30; j++)
                {
                    if (j < size)
                    {
                        para[j] = parameter[j];
                    }
                    else
                    {
                        para[j + size] = _missing;
                    }
                }
                _engine.Run(macroName, para[0], para[1], para[2], para[3], para[4], para[5], para[6], para[7], para[8], para[9], para[10], para[11], para[12], para[13], para[14], para[15], para[16], para[17], para[18], para[19], para[20], para[21], para[22], para[23], para[24], para[25], para[26], para[27], para[28], para[29]);

                _wordDoc.VBProject.VBComponents.Remove(vbModule);
            }
            catch (Exception ex)
            {
                ErrorParser(ex);
                return;
            }
        }