C#을 사용하여 기존 csv 파일에서 기존 Excel 매크로 (VB로 작성, Excel에서 매크로 편집기로 복사 가능)를 수행해야합니다. 지정된 파일은 csv 파일의 경우C#에서 csv 파일에 Excel 매크로 수행
using System;
using Excel = Microsoft.Office.Interop.Excel;
namespace MacroBuddy
{
public class test
{
public static void go_Macro()
{
object oMissing = System.Reflection.Missing.Value;
//create new Excel application instance
Excel.Application oExcel = new Excel.Application();
oExcel.Visible = true;
Excel.Workbooks oBooks = oExcel.Workbooks;
Excel._Workbook oBook = null;
string path = @"C:\Users\user\Desktop\test.csv";
//open file located at path
oBook = oBooks.Open(path, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing);
//run Macro by referencing file and the name of the Macro
RunMacro(oExcel, new Object[] { "test.xlsm!TestMacro" });
//save and close workbook
oBook.Save();
oBook.Close(false, oMissing, oMissing);
System.Runtime.InteropServices.Marshal.ReleaseComObject(oBook);
oBook = null;
System.Runtime.InteropServices.Marshal.ReleaseComObject(oBooks);
oBooks = null;
oExcel.Quit();
System.Runtime.InteropServices.Marshal.ReleaseComObject(oExcel);
oExcel = null;
GC.Collect();
}
private static void RunMacro(object oApp, object[] oRunArgs)
{ oApp.GetType().InvokeMember("Run", System.Reflection.BindingFlags.Default | System.Reflection.BindingFlags.InvokeMethod, null, oApp, oRunArgs); }
static void Main()
{ go_Macro(); }
}
}
그러나, 그것은 작동하지 않습니다 : 나는 이미 내가 같이 보이는, XLSM 파일에 매크로를 수행하는 데 사용할 수있는 작업 코드가 있습니다. 그래서 csv 파일에서 유사한 코드 작업을하거나 Csv 파일을 xlsm 파일에서 C#으로 변환하는 자동화 된 프로세스를 만드는 데 도움이 필요합니다.
또한 VB 매크로 코드를 문자열로 사용하고 문자열을 인수 또는 유사한 프로세스로 사용하는 방법을 사용하여 매크로를 실행할 수있는 것이 도움이됩니다.