- - PR -
VBSで作成したFunctionをC#側から呼びたい。
1|2|3
次のページへ»
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-09-05 15:13
皆様、お久しぶりです。
早速質問ですが件名に書いてる通りです。 VBSを使う理由はC#で直接でExcelを扱ってはゴミが多くなり尚且つ、可読性の悪化、 保守性の悪さなどから断念いたしました。 そこでVBSを経由して、C#で呼び出すって形をとりました。 今現在は、VBSの中でFunctionを作成した段階で困っております。 色々、調べてはみたのですがVBSの情報量がとても少なかったです。 参照ページによるとVBSのFunctionを呼び出すことができるほかに、引数も 使えるということなのですがこの参照ページの通り行ってみても上手くいきませんでした。usingに関しても参照ページを真似てみたのですが [ScriptControl scl = new ScriptControl();] 以上を作成することができませんでした。 尚、参照設定はしております。 開発環境 VS2005 開発言語 C# よろしくお願いします。 #編集追記 この参照ページとは参照記事のことです。わかりにくい表現申し訳ありません。 [ メッセージ編集済み 編集者: オウドー 編集日時 2007-09-05 15:15 ] | ||||||||
|
投稿日時: 2007-09-05 15:23
参照ページは見れませんが、たぶん名前空間が足らないのでしょう。 MSScriptControl.ScriptControl ですよね。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2007-09-05 15:30
早速のお返事ありがとうございます。 名前空間にはusing MSScriptControl;をいれております。 参照記事見れないですね。。。私も見れなくなりました。 http://www.google.co.jp/search?hl=ja&q=C%23%E3%80%80VBS%E3%80%80%E6%93%8D%E4%BD%9C&btnG=Google+%E6%A4%9C%E7%B4%A2&lr= 申し訳ないです。 上から4つ目のところが参照記事と同じページになります。 | ||||||||
|
投稿日時: 2007-09-05 16:31
直接の回答ではありませんが。。。
ActiveX コントロールは new しただけで使っちゃ駄目です。 それで動くものもあるけど、ソース見て確認したとかドキュメントに書いてあったとかでもないかぎり、動作保証は無いものと考えるべきです。 ウィンドウとしての実体を持つ場合があるので、Form に貼り付けて使うのが原則です。 .NET の場合 COM 相互運用層がうまいことやってくれるのかもしれないけど、自動生成された Interop.dll の IL を解析して確証を得たりしたんでも無ければ避けるのが無難です。 | ||||||||
|
投稿日時: 2007-09-05 16:32
そうでしたか... では、
このあたりについて、どう作成できなかったのか詳しく説明をお願いします。 ビルドができないのか、例外が発生するのか、インスタンスがなぜか作成されないのか、その他諸々、情報はできるだけ提示してください。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2007-09-05 16:40
早速のお返事ありがとうございます。そうですね。ドキュメントに書いてない限り 完璧に動作するって保障がありませんね。
お返事ありがとうございます。私自身VBSを使うのは初めてで試行錯誤により [ScriptControl scl = new ScriptControl();] を使用しました。 参照記事にも同じようなことをしており、いけるけなと思い使った次第です。 どう作成できなかったについてですがインテリセンスにてScriptControlが出てこなかった ので作成しませんでした。 | ||||||||
|
投稿日時: 2007-09-05 17:20
"使用しました"? "作成しませんでした"? よくわかりませんが、参照設定は正しくできていますでしょうか? 私の環境ですと問題なくインテリセンスに表示されます。
インテリセンスに表示されないとなると、参照設定できていないとしか思えません。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2007-09-05 17:24
一応名前空間には以下を設定しております。 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using MSScriptControl; using System.Runtime.InteropServices; using System.Collections; using System.Threading; 参照先にはExcel及び、Sprict Controlを設定しております。 これ以外に、必要な名前空間がいるみたいですね。 以下編集追記 ----------------------
インテリセンスされませんでしたのでコードは作成しませんでした。 [ メッセージ編集済み 編集者: オウドー 編集日時 2007-09-05 17:31 ] 以下さらに編集です --------------------- インテリセンスに出てきました!! 参照設定の項目を削除し、再び設定することによりちゃんと行われるようになりました。 ありがとうございました。 [ メッセージ編集済み 編集者: オウドー 編集日時 2007-09-05 17:35 ] |
1|2|3
次のページへ»