xll形式のExcelアドインのテストを自動化しようとしています。xllのロードに問題があります。私はそれをC#で書いています、そして私のコードは次のようになります:
using Microsoft.Office.Interop.Excel;
Application xlApp;
Workbook xlWorkBook;
Worksheet xlWorkSheet;
// create application, open workbook, etc ...
// now try to register xll
xlApp.RegisterXLL("C:\\SomePath\\Whatever.xll");
ただし、これは常にfalseを返します。マクロを記録してxllを手動でロードすると、Excelが密かに何をするかを確認しようとしています。マクロは次のようになります。
Sub Macro1()
ChDir "C:\SomePath"
Application.RegisterXLL Filename:= _
"C:\SomePath\Whatever.xll"
End Sub
唯一の違いはChDirのようですので、コードを次のように変更しました。
FileSystem.ChDir("C:\\SomePath");
xlApp.RegisterXLL("C:\\SomePath\\Whatever.xll");
しかし、それでも機能しません。もう1つの奇妙なことは、RegisterXLL行の前にブレークポイントを置き、最初にxllを手動でロードすると、RegisterXLLメソッドがtrueを返すことです。ただし、それ以外の場合はfalseを返します。