VistaでWebBrowserからPPS表示

タグの編集
投稿者 モル  (社会人) 投稿日時 2009/4/11 00:20:55
WebBrowserでPPS表示
http://rucio.groupsite.jp/commu/ThreadDetail.aspx?ThreadId=45

過去にこのような質問をさせていただいたモルです。
以前は「Form1でPPS表示しながらForm2で別操作したいんですが、Form1のスライドが上手く行かない」との質問だったのですが、今回はそれとは別ですので新たに投稿させてもらいました。

OS:Vista Home Premium SP1
VB6SP6
Mictosoft Office 2000 PowerPointインストール済

コンポーネントから[Microsoft Interner Controls]を追加してWebBrowserを1つ貼り付けます。

Private Sub Form_Load()
    WebBrowser1.Navigate ("C:\プレゼン.pps")
End Sub

[プレゼン.pps]とは、全11枚の各10秒毎に切り替わる設定になっています。

上記で実行しますと1枚目がWebBrowser内に表示され約10秒後に2枚目に切り替わる所まではいいのですが、2枚目以降から切り替わりません。(何秒/何分待っても、何度プログラムを実行し直しても、結果は一緒でした)
これがOSがXPになると何事も無く正常に10秒毎にスライドしてくれます。

XPとVistaではWebBrowserを参照する際に使用しているDLLが
XP:shdocvw.dll
Vista:ieframe.dll
この辺りが関係しているのか分かりませんが、WebBrowser上でppsファイルを正常に実行させる方法はないでしょうか?

また「指定のForm内の指定の位置(範囲)でPPSを実行する」方法が、他にございましたらお教え願いたいと思います。
投稿者 葉月  (社会人) 投稿日時 2009/4/11 20:05:24
使用条件に問題があるので、明確な回答は頂けないかと……

>Mictosoft Office 2000 PowerPointインストール済
ご存知かと思いますが、vistaでOffice2kのインストールは可能ですが、動作の保証はされておりません。
http://www.microsoft.com/japan/Office/previous/2000/PowerPoint/system.mspx
投稿者 モル  (社会人) 投稿日時 2009/4/15 23:33:33
返事が遅れました。申し訳ありません。
葉月さん、回答ありがとうございます。

ご指摘いただいた現象について知識としては理解していましたが、つい正常に動いておりすっかり忘れておりました。すいません。

そこで改めてお聞きします。
PowerPoint 2003で作成したPPSファイルで、PowerPoint 2003インストール済のPCでWebBrowserで動かそうとしても同様の現象が出る事を確認しました。
私の認識不足で2003でもVista上で動作保証対象でない場合は、どなたか2007だと動くなどご存知でしたらお教え願えると助かります。(動作するのでしたら購入を検討したいと思っています)
よろしくお願いします。
投稿者 モル  (社会人) 投稿日時 2009/4/15 23:36:52
>ご指摘いただいた現象について
ご指摘いただいた情報について・・・ですね。すいません。

>つい正常に動いておりすっかり忘れておりました。
スライドショーではなく、作成に関しての「正常」です。
分かりづらくて申し訳ないです。
投稿者 葉月  (社会人) 投稿日時 2009/4/16 06:44:54
2003はOKです。
http://www.microsoft.com/japan/office/previous/2003/editions/prodinfo/sysreq.mspx

動作保障やスペックを調べる際は――
マイクロソフトの商品情報がお勧めです。
検索するときのキーワードのフォーマットは、以下のようになります。
<商品名> システム
※ <~>は、商品によって変わります。

今回のキーワードとしては――
"Microsoft Office Professional Edition 2003" システム
でGoogle検索したら、上位に紹介したURLが引っかかります。
調べる時の参考になれば幸いです。

話はそれましたが、今回のケースは環境によって動作が変わるため対応が難しいと思います。
(XP、Vista両方)PCのブラウザのバージョンと、問題個所のミニマムコードもあった方がいいです。
webBrowserを利用していますので、ブラウザ情報は肝になります。
それから、他の追加情報が必要か確認を取ってはどうでしょうか?

これで他の方からレスがくるかわかりませんが、確率は上がると考えています。
投稿者 モル  (社会人) 投稿日時 2009/4/16 19:09:13
葉月さん、回答ありがとうございます。
また、動作保障の確認事項などの調べ方など参考にさせていただきます。

問題箇所のミニマムコードですが、初めに書かせていただいたForm_LoadにWebBrowserのNavigateにPPSファイルを投げるだけで再現されます。
(少なくても私の環境+テストに手伝っていただいた友人の環境では)

私の環境としては
PC1(OS:XP Home SP2            / IE6.0.2900.2180 SP2)
PC2(OS:XP Professional SP3    / IE7.0.5730.13)
PC3(OS:Vista Home Premium SP1 / IE7.0.6001.18000)

PC1とPC2は3枚目以降も切り替わります。
PC3は常に2枚目で止まります。 
三台とも1番初めに載せた1行のコードをPC1にてexe化したものを使用しています。

そこで試しにPC3にVB6SP6をインストールして、載せたコードにてexe化を行ってみましたが結果は一緒でした。
(コンパイルした環境に左右されるかと思いまして)


>(XP、Vista両方)PCのブラウザのバージョンと、問題個所のミニマムコードもあった方がいいです。
>WebBrowserを利用していますので、ブラウザ情報は肝になります。
私の提示した内容で不足がありましたら、またご指摘いただけると助かります。


>それから、他の追加情報が必要か確認を取ってはどうでしょうか?
との事ですが私の理解不足で申し訳ないのですが、追加情報が何が必要か分かりません。
ですので何を確認取ればいいのか・・・

WebBrowserに固執している訳ではないのですが、サイトなどで自分の調べた範囲で「指定フォーム内のコントロールでサイズが調整出来てPPSが表示出来る」のがWebBrowserでした。
OLEコンテナでもOffice系を操作出来ると情報は見ていたのですが、直でスライドショーが行える?形では無かったので排除しております。
(出来る方法があるのかもしれませんが・・・)
ですので、それ以外のコントロールでもPPSが扱えるのがありましたら、お教え願えたらと思います。
投稿者 葉月  (社会人) 投稿日時 2009/4/17 06:10:55
>>>問題箇所のミニマムコードですが、初めに書かせていただいたForm_LoadにWebBrowserのNavigateにPPSファイルを投げるだけで再現されます。
 DocumentCompleteの記述が使われていなかったので、ミニマムコードのことを書きました。
 もし、DocumentCompleteイベントを使っていないなら、読み込み処理が終了する前に、次の処理へ進んでしまいコケている可能性があります。
 Vista側で読み込み完了まで進んでいるかの目安になります。
 一応、サンプルを載せますが、私はVB6を使ったことがないので動作確認をしていません。

>サンプルコード
Dim document As Object

Private Sub Form_Load()
    Me.WebBrowser1.Navigate ("C:\プレゼン.pps")
End Sub

Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
    Set document = pDisp.Document

    '読み込み終わった後の処理 
End Sub



>>>との事ですが私の理解不足で申し訳ないのですが、追加情報が何が必要か分かりません。
ですので何を確認取ればいいのか・・・
 掲示板でのやり取りは、相手に必要な情報を促すのは、重要だと考えています。
 自分がわかっていても、実は相手に伝わっていないことは多々あります。こういう掲示板だと、文字だけが頼りのためコミュニケーションエラーが起きやすいです。
 それでも、ここは学生さんや入門者の方も多いので、私は直感で山をはり適当に答えています。
 しかし、難しい問題になってくると、私ぐらいのスキルじゃ厳しいため有識者の手が必要になります。
 優しい有識者の場合は、足りない情報を尋ね返してくれますが、見向きもされないことが多いです。もちろん、相手の書き方や対応によって変わりますが。
 事前に促しておけば、足りない情報を聞き返してくれる確率が上がるため推奨しました。
 長々と書いてしまいましたが、要は「他に解決に必要な情報があれば、併せてお知らせ願います」と一文を添えるとレスを貰える可能性が上がりますという話です。
投稿者 モル  (社会人) 投稿日時 2009/4/17 20:57:10
葉月さん、回答ありがとうございます。

サンプルプログラムで動作確認させていただきました。
結果、正常に動作するのを確認しました。
以前MicroSoftでの使い方に葉月さんが載せていただいたのに似たようなのを見た事はあるのですが、DocumentCompleteでSetするオブジェクト変数を特に何かに使ってる訳じゃないから・・・と手抜きな事をしてしまっていました。申し訳ないです。

何分かスライドショーを実行させたままですが、正常に切り替わってくれています。
その他に色々参考するべき所やアドバイスなどいただき本当にありがとうございました。
今後掲示板にて質問させていただく時に気を付けたいと思います。