外部アプリケーションからの実行
Microsoft Office Excel 2003 以前のバージョンの Excel
- マクロ名
ぴったり印刷:PinUI2000.xla!ExecPinPrint
ぴったりプレビュー:PinUI2000.xla!ExecPinPreview
Microsoft Office Excel 2007, 2010
- マクロ名
ぴったり印刷:PinUI2007.xlam!ExecPinPrint
ぴったりプレビュー:PinUI2007.xlam!ExecPinPreview
CreateObjectなどでエクセルを起動した場合は、XLSTARTフォルダにあるぴったり印刷のアドインファイルは読み込まれません。
その場合は、プログラムからアドインファイルをオープンする必要があります。
http://support.microsoft.com/kb/213489/ja
下記のサンプルをご参照ください。
外部アプリケーションからの呼び出しサンプルプログラム(C#)
//マクロファイル名
//Office2000~2003
const string MACRO_PATH_2000 = @"PinUI2000.xla";
//Office2007~2010
const string MACRO_PATH_2007 = @"PinUI2007.xlam";
//ぴったり印刷マクロ関数
//印刷
const string PRINT_MACRO = "ExecPinPrint";
//プレビュー
const string PREVIEW_MACRO = "ExecPinPreview";
private void SampleRunMacro()
{
Microsoft.Office.Interop.Excel.Application xlsApp = new Microsoft.Office.Interop.Excel.Application();
try
{
//XLSTARTフォルダにあるぴったり印刷のアドインファイルを開く
//2000~2003はPinUI2000.xlaを指定する
//2007~2010はPinUI2007.xlamを指定する
string szMacroPath = System.IO.Path.Combine(xlsApp.Path + "\\XLSTART", MACRO_PATH_2000);
xlsApp.Workbooks.Open(
szMacroPath,
Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing
);
//ぴったり印刷を実行するブックを開く
xlsApp.Workbooks.Open(
Book1,
Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing
);
xlsApp.Visible = true; //マクロを実行する
//ぴったり印刷は、ExecPinPrintを指定する
//ぴったりプレビューは、ExecPinPreviewを指定する
xlsApp.Run(MACRO_PATH_2000 + "!" + PRINT_MACRO,
Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing
);
}
finally
{
System.Runtime.InteropServices.Marshal.ReleaseComObject(xlsApp);
xlsApp = null;
}
}
//マクロファイル名
//Office2000~2003
const string MACRO_PATH_2000 = @"PinUI2000.xla";
//Office2007~2010
const string MACRO_PATH_2007 = @"PinUI2007.xlam";
//ぴったり印刷マクロ関数
//印刷
const string PRINT_MACRO = "ExecPinPrint";
//プレビュー
const string PREVIEW_MACRO = "ExecPinPreview";
private void SampleRunMacro()
{
Microsoft.Office.Interop.Excel.Application xlsApp = new Microsoft.Office.Interop.Excel.Application();
try
{
//XLSTARTフォルダにあるぴったり印刷のアドインファイルを開く
//2000~2003はPinUI2000.xlaを指定する
//2007~2010はPinUI2007.xlamを指定する
string szMacroPath = System.IO.Path.Combine(xlsApp.Path + "\\XLSTART", MACRO_PATH_2000);
xlsApp.Workbooks.Open(
szMacroPath,
Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing
);
//ぴったり印刷を実行するブックを開く
xlsApp.Workbooks.Open(
Book1,
Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing
);
xlsApp.Visible = true; //マクロを実行する
//ぴったり印刷は、ExecPinPrintを指定する
//ぴったりプレビューは、ExecPinPreviewを指定する
xlsApp.Run(MACRO_PATH_2000 + "!" + PRINT_MACRO,
Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing
);
}
finally
{
System.Runtime.InteropServices.Marshal.ReleaseComObject(xlsApp);
xlsApp = null;
}
}