misty247

misty247

2011.08.12
XML
カテゴリ: 点字・点訳
 ◆ Mission8. 出力用テンプレート作成 ◆

 どうしよう、どうしよう、とまだ悩んでいるところ。

必要であれば各自で戻してください
と、はなから断ってしまうのも一つの手。手というより、有効手段がみつからない申し開きか。

 なんとかイベントを捕まえて、格好つけられないか、と模索していたところ、以下の頁に出会った。

「イベントを使用して Microsoft Word を制御する」
http://msdn.microsoft.com/ja-jp/library/aa140279%28v=office.10%29.aspx

 2003年と古い記事だが、こんなことが出来るのか、と内容に驚いた。

 で、この頁の情報に従い、あれこれ試行錯誤して、問題解決したかというと、結果はノー。それどころか、抱えている問題が、想像以上に複雑で、どうあがいてもスマートな解決が望めないことを確信するにいたった。

 Quitイベントが捕らえられたら、と喜んだのも束の間、コードを試しても呼ばれない。なぜだろう、とググったら「Unloadされているから無理でしょ:-) 」……って、まぁ理屈ではそうだけど、このイベント、外部からの操作用なのか。

 Document_Open() したものは、Document_Close() が呼ばれる。

 これは致命的な問題だったが、Applicationイベントの DocumentBeforeClose() イベントなら呼ばれることがわかった。
 Document_Close() と DocumentBeforeClose()、どちらも未保存確認前に呼ばれる所が、嬉しくないものの、両のケースで、終了前を捕まえることが出来たのは、一縷の望みをつないでくれた。

 文書の変更有無は Saved プロパティで管理されている。Trueにすれば保存を促すダイアログは出ない。(ここでキャンセルされて、1文書で2回走るとマズい) Newした文書は、SaveAs でダミー保存させてやれば、同じく、保存を促すダイアログは出ない。
 未保存確認は、自前のダイアログで、面倒みることもできる。しかし、墨字文書があれば、点字文書は何度も再生可能なので、破棄は惜しまれない。本処理の特性からして、未保存確認は省いてよいだろう。

 開かれている点字文書の管理を行い、最初の文書が開かれた時に、設定値の保存と書き換えを行い、最後の文書が閉じられた時に、設定値の復元を行う。
 「最後の文書が閉じられた時」、この検知が肝だった。
 「一度きりしか走らない」文書を閉じるときのイベントを捏造?したから、なんとかなった。

 これでなんとか格好がつくか。





お気に入りの記事を「いいね!」で応援しよう

Last updated  2011.08.12 19:13:34
コメント(4) | コメントを書く


■コメント

お名前
タイトル
メッセージ
画像認証
上の画像で表示されている数字を入力して下さい。


利用規約 に同意してコメントを
※コメントに関するよくある質問は、 こちら をご確認ください。


PQSioLcEiZ  
Bristol Airport Hotels さん
tqS8R5 Great blog.Really thank you! Much obliged. (2012.04.20 01:42:29)

Re:PQSioLcEiZ(08/12)  
misty247  さん
Thank you for the comment from the back in the earth.
(2012.06.05 22:20:39)

prnb8W Thanks a lot for the post. Fantastic.  
prnb8W Thanks a lot for the post. Fantastic. さん
prnb8W Thanks a lot for the post. Fantastic. (2012.09.21 01:19:26)

Re:prnb8W  
misty247  さん
Thank you!
I am glad to help you in an unexpected point. (2012.09.22 00:06:19)

【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! -- / --
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x
X

© Rakuten Group, Inc.
Design a Mobile Site
スマートフォン版を閲覧 | PC版を閲覧
Share by: