- - PR -
Excelマクロを渡した場合のreturnの方法
投稿者 | 投稿内容 | ||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-05-19 00:18
うーん、作り込み的には 1 番面倒だと思いますよ。 FileSystemWatcher あたりを使ったとしても、面倒は面倒ですね。 ScriptControl を通じての実行であれば、タイミングは C# 側が知っています。 # 私のサイト、こういう大事なところが全く書かれていないですね... orz _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||||||||||||||||||||||
|
投稿日時: 2007-05-19 11:05
ありゃ、 FileSystemWatcher で面倒だといわれると確かに面倒ですね。。。 まぁあれもタイミングの問題もあるし。 ScriptControl って全然知らなかったんですが、意外と使えそう。 調べたら NyaRuRu さんのところ経由で じゃんぬねっとさん に行き着いたw _________________ かるあ のメモ と スニペット | ||||||||||||||||||||||||||||||||
|
投稿日時: 2007-05-21 22:11
todo様、かるあ様、じゃんぬねっと様
皆様ありがとうございます(お礼申し上げるのが遅くなりました) 【todo様へ】
今回の質問とは、別の意味で役立たせていただきます。 以前、Office TANAKA(さん)のHPは拝見したことがあります。しかし、実はしっかり読んでいませんでした。よく読めば二次元配列と書いてあります(見落としています)。再度じっくり読みたいと思います。
一見しましたが、価格も高くないようですね。かるあ様もお勧めで。 ありがとうございます。 【かるあ様へ】
実は、まだ全てをEXCELマクロに渡しておらず、前段の作業をC#側でやっているのですが、実行時間が掛かり過ぎるような気がします。 それと、COMの関係(特に開放)がしっかりわかってないので、それが理解できるようになれば、c#側でやらせる事もできるのかと思っています(永遠にこないかもしれせんが)。
はい、c#の部分では、メッセージの吐き出しはOKです。 【じゃんぬねっと様へ】
Runメソッドと言うのは、RunMacro()のことでしょうか、まだ一気にそこまでいかずに、コマンドバーを使用しています。 Runメソッドを使えば、Excel側でメッセージをためこんで、マクロの終了時に一気にc#に戻り値として返すということもできそうですね。
安定性の問題があるのは、キビシイですね。
はい。 速度的には、どんなものなのでしょうか。
言葉で説明するとなると難しいですが、違う仕様で作成されているExcelの複数ファイルから、一致するデータで仕様の違うExcelファイルをオートマチカルに作成するとなります。 | ||||||||||||||||||||||||||||||||
|
投稿日時: 2007-05-21 23:20
いいえ、先にも書かせて頂いたとおり、Excel.Application インターフェイスの Run メソッドです。 この Run メソッドは VBA マクロ側のお好きな関数を呼び出すことができます。
逐次戻り値を返す必要がないのであれば、それで良いと思います。
他の方法でも同じですがインタプリタレベルです。
それにしてもデータ量が多いのですね。 現在どのような実装をしているかわかりませんが、改善の余地はあると思いますよ。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||||||||||||||||||||||
|
投稿日時: 2007-05-22 14:58
じゃんぬねっと様
ありがとうございます。
そうでしたか、すみません。
このような記述を見るとわくわくするのは、私だけでしょうか。
本当は、逐次でいきたいのですが、このやり方で行く場合は、この方法しかないかと。後追いの目的は果たすことができますので。
はい。1つのファイルが10MBを軽く超えているので、前処理でそぎ落とす事も必要なのかと考えています。VBA側の作りの問題も当然見直しをかける必要があると思っています。 ScriptControlがいいのか、Excel.Application インターフェイスの Run メソッドで行くのがいいのか試行錯誤してみたいと思います。 明りが見えてきました。ありがとうございます。 |