###前提・実現したいこと
C#にてWindowsFormアプリケーションを作成しています。
アプリケーション内でExcelを扱うのですが、Excelのバージョン違いを吸収する必要があります。
調べたところ、遅延バインディングでExcelを操作すれば良いことがわかりました。
また、ソースコードに記述したように、
・オブジェクトの型をGetType()で取得
・取得した方が保有するメンバー(メソッド・プロパティ)にInvokeMember()関数を使ってアクセス
以上でWorkbookやworksheetに対する操作ができることがわかりました。
###教えていただきたいこと
InvokeMember()関数は引数に、
・呼び出すメソッドやプロパティ名
・呼び出すメンバーに渡される引数を格納する配列
等が必要になるのですが、それらをどうやって調べればよいか教えてください。
https://msdn.microsoft.com/ja-jp/library/66btctbe(v=vs.110).aspx
たとえばWorkbookを操作したいとき、
Workbookがどんなメソッドやプロパティを保有しているのか、
またそれらを呼び出すときにどんな引数をわたせば良いのか、
といったことが知りたいです。
(WorksheetやCellも同様の内容が知りたい)
###該当のソースコード
// Excelアプリケーションオブジェクト生成 Type objClassType = Type.GetTypeFromProgID("Excel.Application"); objApp = Activator.CreateInstance(objClassType); // workbooksオブジェクト取得 object objBooks = objApp.GetType().InvokeMember( "Workbooks", BindingFlags.GetProperty, null, objApp, null ); // workbook追加 object objBook = objBooks.GetType().InvokeMember( "Add", BindingFlags.InvokeMethod, null, objBooks, null ); // worksheetsオブジェクト取得 object objSheets = objBook.GetType().InvokeMember( "Worksheets", BindingFlags.GetProperty, null, objBook, null );
###補足情報(言語/FW/ツール等のバージョンなど)
.NET Framework4
Visual Studio 2015

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/11/16 03:17
2016/11/16 04:16
2016/11/16 04:22
2016/11/16 04:48 編集
2016/11/16 07:09
2016/11/16 07:33
2016/11/16 07:46
2016/11/16 08:55
2016/11/16 09:06