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
by manamana
4. 3月 2010 00:37
TechCrunch の2つの記事が興味深いです。
Apple の業績は好調で、iPad の様な話題の製品ももうすぐ発売です。
しかし、このところの Apple は必要以上に敵を作っています。Adobe に続き Google とも戦闘状態とは・・・
共通の敵だった MS が大人しくなったので共闘の必要がなくなったからでしょうか?
Apple の特許は基本的な事を押さえているので、多くのデバイスが対象になりそうです。
Windows 7 のマルチタッチも危ない感じがしますが、今のところ訴訟対象外みたいです。
なにか Apple が一方的に噛み付いている印象ですが、この争いの行方が気になります。
472242ef-95a6-4017-a20d-45e7180fe3c6|0|.0|96d5b379-7e1d-4dac-a6ba-1e50db561b04
Tags:
その他の IT 系