by manamana
1. 4月 2010 23:58
VSTO(=Visual Studio Tools for Office) の情報発信でおなじみの小山才喜氏が、新たにサイトを立ち上げています。
Office 開発の羅針盤 ~ Office Developer's compass ~
小山氏は以前 「VSTO みちしるべ~道標~」というブログで、当時は皆無であった VSTO の情報を出し続けていました。
OfficeLink の開発では、小山氏の情報が随分と役に立ちました。※それが縁で情報を頂きました
小山氏には幾つかの著書がありますが、私も所有している本を宣伝してみます。
本書のお披露目会に参加した事がありますが、その席で 「海賊王に俺はなる!」との台詞が印象的でした。
その流れでしょうか、新しいサイトの名称には「羅針盤」や「航海日誌」という単語が見られます。
小山氏は自らの航海に乗り出した様子で、今後の活躍が期待されます。
2da4851b-ac17-4f24-ad7c-fb14bd1676c4|0|.0|96d5b379-7e1d-4dac-a6ba-1e50db561b04
Tags:
VSTO
by manamana
15. 3月 2010 01:08
コントロールの Property 値を保存する仕組みに、
ApplicationSettings と PropertyBinding の組み合わせが用意されています。
これは非常に便利な仕組みで、ini ファイルやレジストリの利用をしなくてもOKになります。
しかし、ドキュメントベースの VSTO の場合、設定はドキュメント自体に付いていて欲しいのです。
※誰が開いても同じ状態を再現できるようになりたいわけです。
ApplicationSettings と PropertyBinding のスコープは User/Applicatin の二種類であり、
VSTO とは相性がよくありません。この部分を何とかする必要があります。
ちょいと面倒な感じです。
cf03a336-a50b-4c99-a5af-dfcdc8c2e146|0|.0|96d5b379-7e1d-4dac-a6ba-1e50db561b04
Tags:
VSTO
by manamana
12. 3月 2010 22:24
Excel コントロールの優れている点は、コントロールのプロパティ値・・・
具体的には、TextBox の内容等をちゃんと記憶してくれることです。
え? と思うかも知れませんが、VSTO のコントロール(※ドキュメントベース)は、
TextBox を編集して保存しても、次回の起動時では元にもどされてしまうのです。
.NET では、プロパティ値を保存するための仕組みが用意されていますが、
Excel テンプレートを VSTO で拡張する場合にはあまり有効ではありません。
この辺も、VBA からVSTOに移行する時の壁になります。
この問題を解決するには、初期化の仕組みを作り込むことになります。
作成中の LinkedCell の仕組みでも何とかなりそうですが、実用的ではなさそうです。
ここはやはり、Excel の(隠し)Worksheet に Property 値を保存できる仕組みが良さそうです。
app.config と同様の xml 形式で記録するのが良い感じです。
Cell に記録すると何かと制限があるので、ここは 「テキストボックス」の出番ですが、さてどうなることやら~
3d2c8b2e-ab98-4334-a4d4-ce708edcbc6d|0|.0|96d5b379-7e1d-4dac-a6ba-1e50db561b04
Tags:
VSTO
by manamana
11. 3月 2010 23:51
Excel で使用できるコントロールは強力です。
LinkedCell に代表されるプロパティはWorksheet の情報を手軽に利用できるので
プログラム無しでも、マクロを組んでいるかのような動きをさせることが出来るし、
VBA で細工をすれば、大抵の処理は出来るようになります。
MS としては、新しい技術への対応やセキュリティの観点からVSTOを推奨しています。
VSTO は確かに便利なのですが、利用できるのは .NET の標準コントロールであり、
LinkedCell のような気の利いたプロパティを持っていません。
ということで、LinkedCell の様な動きをするプロパティを持った UserControl を作ってみました。
Excel コントロールのように手軽じゃない部分もありますが、大体思った通りに動きます。
機会を見つけて発表できると思います。
0b14bcad-a3d5-42af-877f-21b0100802e2|0|.0|96d5b379-7e1d-4dac-a6ba-1e50db561b04
Tags:
VSTO
by manamana
7. 3月 2010 23:25
VSTOは非常に便利ですが、幾つかの制限があります。
COM技術で作られたOfficeと、.NET 世界のVSTOではなかなか難しい壁があるのです。
例えば、Excel のSheet に多量の(VSTO提供の)コントロールを貼り付けると、ビックリするほど遅くなります。
これは、COM側のSheetと、.NET側のコントロールが中で色々やっているからだと思います。
Sheet に直接コントロールを貼るのではなく、WindowsForm や UserControl に貼り付ければOKなので、
I/Fの効率をよく考えた配置が重要になります。
具体的には、MS のチュートリアルで登場する「作業ウィンドウ」の活用が鍵になるでしょう。
Office 2010 & VS2010 ではこのあたりが改善されているらしいので期待していますがまだ実験していません。
Sheet にコントロールを貼り放題なら喜ばれると思いますが・・・どうなっているのかな?
9c4f14b1-7c05-45bf-9562-c63e097fbe5b|0|.0|96d5b379-7e1d-4dac-a6ba-1e50db561b04
Tags:
VSTO