• 締切済み

vba メッセージを表示させたくない

VBAのフォーム上のコントロールをクリックして WebBrowserコントロールを起動しているのですが 画像のような画面がたまに表示されます。 **************************************************** このドキュメントには、コンピューターに害を及ぼす可能性のある埋め込みコンテンツが含まれます。 以下のオプションから1つを選択してください。 コンテンツの再生を許可しません(推奨) このコンテンツを認識します。再生を許可します。 **************************************************** 多分、Navigateするタイミングだと思います。 表示する(Navigateする)サイトは教えてgooなどです。 毎回「このコンテンツを認識します。再生を許可します。」 を選択してるのですが、 面倒なので

みんなの回答

回答No.5

ANo.4のものですが、即席のファイル名変更プログラムを作りましたので、ご参考までに。 下のプログラムを標準モジュールにコピー&ペーストして下さい。 Public Function FlashFileReName(ReNameFlg As Boolean) 'WebBrowserの面倒なメッセージを出なくするため 'Flashフォルダ内のFlash32**.ocxファイルをリネームする Dim FldPath As String 'フォルダの設定 Dim FileNameF As String '公式ファイル名 Dim FileNameD As String 'ダミーファイル名 Dim FullPathF As String '公式ファイルのフルパス Dim FullPathD As String 'ダミーファイルのフルパス '#== 初期設定 ================================================================ 'Flashのフォルダ設定(自身のPCに合ったフォルダを設定して下さい) FldPath = "C:\Windows\System32\Macromed\Flash\" 'flashのファイル名設定 '必ず自身がお使いのファイル名を設定して下さい FileNameF = "Flash32_11_6_602_180.ocx" '←公式ファイル名 FileNameD = "Flash32_11_6_602_180.ocx.bak" '←ダミーファイル名 '#============================================================================== 'フルパス設定 FullPathF = FldPath & FileNameF FullPathD = FldPath & FileNameD 'ファイル名を変更する If ReNameFlg = True Then 'ダミー名から公式名に変更 Name FullPathD As FullPathF Else '公式名からダミーに変更 Name FullPathF As FullPathD End If End Function ↑コピーはこの真上までです。 初期設定は必ず行って下さい。 次に、コマンドボタンを作って下さい。 コマンドボタンのクリックイベントに 下記のプログラムをコピー&ペーストして下さい。 'ダミー名から公式名に変更 FlashFileReName (True) ↑コピーはこの真上まで。 もう一つコマンドボタンを作って 下記のプログラムをコピー&ペーストして下さい。 '公式名からダミーに変更 FlashFileReName (False) ↑コピーはこの真上まで。 コマンドのボタン名は自身が分かりやすい名前に。 1つ目は『Flash使用可』や『公式ファイル名に変更』等 2つ目は『Flash一時停止』や『ダミーファイル名に変更』等 そんな感じで作ってみて下さい。 即席モノですので、ファイルの存在確認や その他エラー回避などは入っておりません。 各自改造して使ってみて下さい。

回答No.4

とりあえず応急処置ですが、以下の方法で例のメッセージは出てこなくなります。 方法は flashフォルダ(C:\Windows\System32\Macromed\Flash)内にあるFlash32_11_6_602_180.ocxを別の場所か、ファイル名を変える(自分の場合Flash32_11_6_602_180.ocx.bakにしました)と、例のメッセージは出なくなりました。 その代わり、拡張子ocxのFlash32ファイルを元に戻さないと、当然インターネットエクスプローラーやクロームなどで、Flashを見たり操作したりする事は出来ません。 『WebBrowserを動かしている時は、Flashは使わない』と割り切る方にオススメです。 手動でFlash32ファイルの名前を変更したりするのが面倒な方は、WebBrowserを動かす前にFlash32ファイルの名前を変更して、WebBrowserの処理が終わったら、ファイル名を元に戻すプログラムを組んでおけば、楽かと思います。

回答No.3

追伸:ひとつ気がついたことだけれども、WebBrowser のバージョンというものが影響しているように思いますね。どうも古いExcelからでは、ダイアログボックスが表示されることが多いようです。それから、#1,#2で書いたイベントは、やはり古いバージョンでは上手く行っていません。表示が回数が減るだけでした。

回答No.2

#1の回答者です。 Private Sub WebBrowser1_AfterUpdate()   Application.SendKeys "{ESC}" End Sub 今のところ、これでトラップ(笑)には引っかかっていません。

回答No.1

たぶん、同様の質問は、同じご質問者さんだと思います。 本来、JavaScript やActiveXの操作を止めてしまえばよいのですが、IEオブジェクトを利用しているのに、WebBrowserでは、思うように行きません。教えてgoo に限る話のようです。 それから、これは最近のことだと思います。 そこでWebBrowser のイベントに対して、Sendkeys "{ESC}" を入れてみたらいかがでしょうか。 質問で書かれている内容(コマンド)とは、意味が違うとは思いますが、少なくとも、ダイアログボックスは出現しなくなるはずです。WebBrowserで何かをしようとするなら、以下は役に立たないかもしれません。 Application.Sendkeys "{ESC}" どのイベントがふさわしいのかは、今のところ検証中です。 どれかがヒットするはずです。 たとえば、 Private Sub WebBrowser1_TitleChange(ByVal Text As String) や Private Sub WebBrowser1_AfterUpdate()

関連するQ&A

専門家に質問してみよう