ページにまつわる増減する情報の記録先 |
- 01: 名前:ゆう投稿日:2007/09/04(火) 16:54
- Visio2007で開発を行っております。
その中で、ページ上に配置されたオブジェクトが、
チェックを行い、一定の条件に沿わないと多数のエラーを出す、という処理を
実装しようとしております。
そのエラー内容を格納しようとしているのですが、
その格納先に悩んでおります。
理想をいえば、Scripting.Dictinaryオブジェクトにでも持たせたいのですが、
ファイルを開閉することを考えると、どこかメモリ上ではなく、
ファイル上に記録させたいのです。
テキストファイルやDBに記録することも考えたのですが、
頻繁にアクセスする予定なので、処理速度の低下を嫌い、
避けたいところです。
一方、ページの図形データ(カスタムプロパティ)に持たせることも考えたのですが、
行が非常に多くなり、かつ増減が激しいです。
どこに持たせることが適当でしょうか。
- 02: 名前:yoda投稿日:2007/09/04(火) 17:43
- 普通は、シェイプシートのUser Defined Cellsを作り、格納します。
- 03: 名前:visGeek投稿日:2007/09/04(火) 17:53
- 永続化のためには、ページシートか
ドキュメントシートに記録するのがよいでしょう。
高速化のためには、図面オープン時などに
メモリにキャッシュするのが吉です。
- 04: 名前:‚ゆう投稿日:2007/09/04(火) 18:46
- visGeek様
きちんと動作するか不安だったのですが、
図面オープン時にたとえばScripting.Dictionary に キャッシュしたとして、
その内容って、開いている間ずっと保持されるのでしょうか?
であれば、クローズ時に戻してあげればいいのかな、と考えました
- 05: 名前:visGeek投稿日:2007/09/04(火) 20:55
- Visioとは直接関係のない、プログラム一般の話ですね。
「変数の有効期間」について、調べてみてください。
- 06: 名前:ゆう投稿日:2007/09/04(火) 21:04
- visGeek様
了解しました。ありがとうございます。
- 07: 名前:‚ゆう投稿日:2007/09/04(火) 21:09
- (途中で切れてしまいました。すいません。)
visGeek様
了解しました。ありがとうございます。
それで再確認してみました。
で、VisioにおいてDocumentオープンでSetしたグローバル変数の
Scripting.Dictionary は Documentクローズまで保持されるか分かりませんでした。
また途中でデバッグするときに、コードの実行をとめたりしても保持しつづける
のでしょうか?
実際に試してみたのですが、なんだか不安定な気がして質問させていただきました。
- 08: 名前:yoda投稿日:2007/09/05(水) 06:07
- 開発環境によりますが、VisioのVBAの場合、デバッグ中でも、
プログラムが動いていれば、保持されているかどうかは、
その変数の上で、マウスの右ボタンを押してみれば、
生きていれば、そのときの値が表示されます。
コードを編集するために、プログラムを止めれば、
当然開放されてしまいます。
- 09: 名前:visGeek投稿日:2007/09/05(水) 09:48
- 基本的には、図面を閉じるまでではなくVisioを終了するまで保持されます。
ただ、デバッグ中に特定の操作をするとリセットされてしまいます。
VBEの[ツール][オプション]で
[全般]タブの[状態の破棄を通知]も参考にしてください。
- 10: 名前:ゆう投稿日:2007/09/05(水) 16:15
- 理解できました。
本当にありがとうございます。
|
|