से मैक्रो (वीबीए) कोड प्रोग्रामेटिक रूप से निकालें क्या एपीआई का उपयोग करते हुए वर्ड 2007 "डॉकएम" दस्तावेज़ से सभी वीबीए कोड निकालना संभव है?वर्ड 2007 डॉक्स
मैं कैसे कार्यावधि में VBA कोड डालने के लिए, और कैसे सभी VBA कोड को हटाने के लिए है, लेकिन (भविष्य में और अन्य दस्तावेजों में डालने) एक स्ट्रीम या स्ट्रिंग है कि मैं स्टोर कर सकते हैं में बाहर वास्तविक कोड खींच नहीं पाया है।
किसी भी सुझाव या संसाधन की सराहना की जाएगी।
संपादित करें: सभी को धन्यवाद, Aardvark का जवाब वही था जो मैं ढूंढ रहा था। मैं सी # करने के लिए अपने कोड परिवर्तित, और यह एक वर्ग पुस्तकालय से फोन कर रहा था है विजुअल स्टूडियो 2008
using Microsoft.Office.Interop.Word;
using Microsoft.Vbe.Interop;
...
public List<string> GetMacrosFromDoc()
{
Document doc = GetWordDoc(@"C:\Temp\test.docm");
List<string> macros = new List<string>();
VBProject prj;
CodeModule code;
string composedFile;
prj = doc.VBProject;
foreach (VBComponent comp in prj.VBComponents)
{
code = comp.CodeModule;
// Put the name of the code module at the top
composedFile = comp.Name + Environment.NewLine;
// Loop through the (1-indexed) lines
for (int i = 0; i < code.CountOfLines; i++)
{
composedFile += code.get_Lines(i + 1, 1) + Environment.NewLine;
}
// Add the macro to the list
macros.Add(composedFile);
}
CloseDoc(doc);
return macros;
}
का उपयोग कर
स्मृति के उपयोग का अनुकूलन करने के StringBuilder का उपयोग करें: StringBuilder sb = नए StringBuilder(); .... sb.AppendLine ("कोड की आपकी रेखा"); ... macros.Add (sb.ToString()); – Skuami