重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

VBAのフォーム上のコントロールをクリックして
WebBrowserコントロールを起動しているのですが
画像のような画面がたまに表示されます。
****************************************************
このドキュメントには、コンピューターに害を及ぼす可能性のある埋め込みコンテンツが含まれます。
以下のオプションから1つを選択してください。

コンテンツの再生を許可しません(推奨)
このコンテンツを認識します。再生を許可します。
****************************************************
多分、Navigateするタイミングだと思います。
表示する(Navigateする)サイトは教えてgooなどです。

毎回「このコンテンツを認識します。再生を許可します。」
を選択してるのですが、
面倒なので

A 回答 (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一時停止』や『ダミーファイル名に変更』等
そんな感じで作ってみて下さい。


即席モノですので、ファイルの存在確認や
その他エラー回避などは入っておりません。
各自改造して使ってみて下さい。
    • good
    • 0

とりあえず応急処置ですが、以下の方法で例のメッセージは出てこなくなります。



方法は
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の処理が終わったら、ファイル名を元に戻すプログラムを組んでおけば、楽かと思います。
    • good
    • 0

追伸:ひとつ気がついたことだけれども、WebBrowser のバージョンというものが影響しているように思いますね。

どうも古いExcelからでは、ダイアログボックスが表示されることが多いようです。それから、#1,#2で書いたイベントは、やはり古いバージョンでは上手く行っていません。表示が回数が減るだけでした。
    • good
    • 0

#1の回答者です。



Private Sub WebBrowser1_AfterUpdate()
  Application.SendKeys "{ESC}"
End Sub

今のところ、これでトラップ(笑)には引っかかっていません。
    • good
    • 0

たぶん、同様の質問は、同じご質問者さんだと思います。


本来、JavaScript やActiveXの操作を止めてしまえばよいのですが、IEオブジェクトを利用しているのに、WebBrowserでは、思うように行きません。教えてgoo に限る話のようです。
それから、これは最近のことだと思います。

そこでWebBrowser のイベントに対して、Sendkeys "{ESC}" を入れてみたらいかがでしょうか。
質問で書かれている内容(コマンド)とは、意味が違うとは思いますが、少なくとも、ダイアログボックスは出現しなくなるはずです。WebBrowserで何かをしようとするなら、以下は役に立たないかもしれません。

Application.Sendkeys "{ESC}"

どのイベントがふさわしいのかは、今のところ検証中です。
どれかがヒットするはずです。

たとえば、
Private Sub WebBrowser1_TitleChange(ByVal Text As String)

Private Sub WebBrowser1_AfterUpdate()
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!