2

ワークブックを動的に作成します。作成時にコードモジュール(Module1.bas)と(UserForm1.frm)をインポートしたい。

ワークブックまたはワークシート オブジェクトを使用してそのようなファイルを添付する方法はありますか?

Microsoft.Office.Interop.Excel.Workbook wkBk;
Microsoft.Office.Interop.Excel.Worksheet wkSht; 
app = new Microsoft.Office.Interop.Excel.Application();
app = new Microsoft.Office.Interop.Excel.Application();
app.DisplayAlerts = false;
app.Visible = false;
wkBk = app.Workbooks.Open(strFile, oMissing); 
wkSht = (Microsoft.Office.Interop.Excel.Worksheet)wkBk.Sheets.get_Item(2); 
wkBk.Save(); 
4

1 に答える 1

5

次のコードは、Excelファイルを開き、ディスク上のファイルから取得した1つのVBAモジュールと1つのVBAユーザーフォームを追加します。

それが機能するように、最初に「VisualBasicプロジェクトへのアクセスを信頼する」設定をオンにする必要があります。これは、[ツール]->[マクロ]->[セキュリティ]の[信頼できる発行元]タブにあります。(これはExcel 2003の場合です。2007の場合は、[Excelのオプション]->[セキュリティセンター]->[セキュリティセンターの設定]->[マクロの設定]にあります)。Excelが実行されている場所(処理しているExcelファイルが保存されている場所とは関係なく)でこの設定が有効になっていることを確認する必要があります。(この設定をプログラムで変更することはできません。これにより、完全に無意味な設定になります)。

$oExcel = ObjCreate("Excel.Application")
    With $oExcel
        .Visible = 0
        .WorkBooks.Open("C:\Excel.xls")
    EndWith

    $oModules = $oExcel.ActiveWorkbook.VBProject.VBComponents
    $oModules.Import("C:\Module1.bas")
    $oModules.Import("c:\Program Files\Microsoft Office\Office11\UserForm1.frm")
于 2012-08-21T07:26:08.550 に答える