Microsoft AccessのフォームでWebブラウザーコントロールを追加しても「ハイパーリンクの挿入」ダイアログが出ず、ページが真っ黒になる――この症状は設定一つで解決することが多いです。原因の切り分けから、確実に表示させる手順、表示できない時の代替策までまとめます。
起きている症状を整理する
本や手順書では「Webブラウザーコントロールを配置すると、[ハイパーリンクの挿入]ダイアログ(ウィザード)が表示される」と書かれているのに、実際には何も出ず、いきなりコントロールだけがフォームに置かれてしまうことがあります。さらに、URLを入れてもページが表示されなかったり、コントロール部分が黒い四角のままになったりして、原因が分からず詰まりがちです。
| よくある症状 | 原因候補 | 最初に試すべきこと |
|---|---|---|
| 追加しても「ハイパーリンクの挿入」ダイアログが出ない | コントロールウィザードがオフになっている | デザインビューで「杖アイコン」がオンか確認し、オンにして追加し直す |
| プロパティにURLを入れても何も表示されない | URLの渡し方(フィールド型・書式・イベント)が合っていない | まずは固定URLで表示できるかを確認し、次にフィールド連動へ進む |
| 表示領域が黒い四角/真っ白で固まる | ActiveXがブロック、信頼センター設定、環境依存(IE系描画の限界) | 信頼済み場所・ActiveX設定を確認し、外部サイトは「既定ブラウザーで開く」へ切り替えも検討 |
ダイアログが出ない最大の原因:コントロールウィザードがオフ
結論から言うと、Webブラウザーコントロール追加時に表示される「[ハイパーリンクの挿入]」などのダイアログは、Accessのコントロールウィザード(Use Control Wizards)が有効なときだけ起動します。
このスイッチがオフだと、コンボボックスやボタンなどでも「ウィザードが出ない」状態になります。つまり、Webブラウザーコントロールだけの不具合ではなく、Accessの設計画面でウィザードを使わないモードになっている、というのが一番起こりやすいパターンです。
コントロールウィザードがオフになりやすいタイミング
- 以前の作業で、ウィザードが邪魔で一度オフにしたまま忘れていた
- 別のフォームを編集したときにオフの状態で保存され、そのまま引き継がれた
- デザイン作業を効率化するために、意図的にオフで運用していた
自分では何も変更していないつもりでも、作業の流れで杖アイコンがオフのままになっていることは珍しくありません。
解決手順:ウィザードをオンにして「追加し直す」
ポイントは、ウィザードをオンにしただけでは「既に置いたコントロール」には反映されないことがある点です。確実に「[ハイパーリンクの挿入]」を出すには、削除して追加し直すのが早いです。
- 対象フォームをデザインビューで開く
- リボンの[デザイン]タブ → [コントロール]付近にある杖(魔法の杖)アイコンを探す
- 杖アイコンがオフならクリックしてオンにする(押し込まれた状態・強調表示になればOK)
- すでにフォーム上にあるWebブラウザーコントロールをいったん削除する
- もう一度Webブラウザーコントロールを追加する
- 追加時に[ハイパーリンクの挿入]などのウィザードが表示されることを確認する
| 手順 | つまずきやすい点 | コツ |
|---|---|---|
| デザインビューで開く | レイアウトビューだと作業しにくい/表示が違うことがある | まずはデザインビューで統一して確認する |
| 杖アイコンをオン | アイコンが小さく、見落としやすい | 「コントロール」グループを拡大表示し、押し込み状態を確認する |
| 削除→追加し直し | 既存の設定を引き継ぎたい場合がある | プロパティシートのスクリーンショットを撮ってから作業すると安心 |
ウィザードを使わずに設定する方法(手動設定の考え方)
「ウィザードは出たけれど、選択を間違えた」「そもそもウィザードを使わずに構成したい」という場合は、プロパティを理解して手動設定していくのが確実です。
まず押さえるべきポイント
- Webブラウザーコントロールは、表示するURLをどこから受け取るかが肝
- URLは、フォームの固定値でも、テーブルのフィールドでも、コードで都度渡してもよい
- 「ハイパーリンク型(Hyperlink)」のフィールドを使うと管理しやすいが、テキスト型でも運用は可能
| URLの持たせ方 | 向いているケース | 注意点 |
|---|---|---|
| 固定URL(プロパティに直書き) | 社内ポータルや手順書など、常に同じページを見せたい | まず動作確認に最適。表示できないなら環境要因の可能性が高い |
| テーブルのフィールド(レコードごとにURL) | 顧客ごと、案件ごとに参照先が違う | 空値・無効URLの扱い(エラー回避)を設計しておく |
| VBAでNavigate(イベントで都度指定) | 条件に応じてURLを組み立てたい、ログインURLを変えたい | イベントのタイミング(Current/AfterUpdate)を間違えると表示が更新されない |
VBAでレコード切り替え時に表示先を更新する例
レコードを移動したタイミングで、URLフィールドの内容を表示したいなら、フォームの現在(Current)イベントで更新するのが定番です。
Private Sub Form_Current()
On Error Resume Next
' URLを格納しているフィールド名に合わせて変更してください
If Not IsNull(Me!URL) Then
' Webブラウザーコントロール名に合わせて変更してください
Me!WebBrowser0.Object.Navigate Me!URL
End If
End Sub
ポイント:フォーム上のコントロール名(例:WebBrowser0)やURLフィールド名(例:URL)は環境で異なります。プロパティシートの「名前」を確認し、コード側の名前と合わせてください。
ページが真っ黒/表示されないときの原因と対処
「ダイアログが出ない」問題はコントロールウィザードで解決することが多い一方で、ページが表示されない(黒い四角・真っ白・エラー)は複数の要因が絡みます。ここでは、現場で切り分けしやすい順に解説します。
最初にやるべき切り分け:簡単なURLで表示できるか
いきなり業務サイトや外部の大手サイトで試すと、認証・スクリプト・暗号化などの要因が混ざります。まずは、シンプルな静的ページ(社内の簡易ページやテスト用ページ)で表示できるかを確認してください。
- 「どのサイトでも表示できない」なら、ActiveX/信頼センター/環境が原因の可能性が高い
- 「特定サイトだけ表示できない」なら、サイト側の仕様(IE非対応・TLS・最新JS依存など)の可能性が高い
原因1:Webブラウザーコントロールが古いブラウザー(IE系)に依存している
Accessの従来型Webブラウザーコントロールは、内部的にInternet Explorer(IE)系の描画エンジンを使う設計です。そのため、次のようなサイトは正常に表示できないことがあります。
- 最新ブラウザー前提のJavaScriptやCSSを多用している
- 古いブラウザーをサポート対象外として弾く(「このブラウザーはサポートされていません」等)
- 暗号化方式や証明書、セキュリティ設定の差で接続が失敗する
この場合、Access側をいくら調整しても限界があるため、「Accessに埋め込む」方針自体を見直すのが最も効果的です(後述)。
原因2:信頼センター(Trust Center)やActiveX設定でブロックされている
Accessはセキュリティの都合上、信頼されていないデータベース(ダウンロードフォルダやメール添付から開いたmdb/accdbなど)では、ActiveXコンテンツやマクロが制限されることがあります。WebブラウザーコントロールはActiveX系の挙動になるため、制限が強い環境では黒い四角のままになることがあります。
確認の目安としては次の通りです。
- フォームを開くと上部に「セキュリティ警告」が出ていないか
- 同じPCでも、信頼済みの場所に置いたファイルだけ動く/動かない差がないか
- 社内配布用のファイルで、署名や配布フォルダが統一されているか
対処の方向性:業務用途では、データベースファイルを信頼済み場所(Trusted Location)に配置し、ActiveXやマクロの実行が想定通りになるように運用設計します。個人環境でのテストでも、まずは信頼済み場所に置いて検証すると切り分けが早いです。
原因3:URLの形式・データ型の問題(ハイパーリンク型とテキスト型)
「URLを入れたのに表示されない」ケースでは、意外とURLの文字列が不完全だったり、フィールドの型や書式が合っていなかったりします。
| チェック項目 | NG例 | OK例 |
|---|---|---|
| スキーム(http/https)が付いているか | www.example.com | https://www.example.com |
| 空白や改行が混ざっていないか | https://www.example.com(末尾に空白) | 前後の空白を除去したURL |
| ハイパーリンク型の「表示文字列」と「実URL」がズレていないか | 表示は正しいが、実体のアドレスが空 | リンク先アドレスが正しく入っている |
Accessのハイパーリンク型は便利ですが、内部的に「表示文字列」「アドレス」「サブアドレス」などの要素を持てるため、データ移行や手入力で崩れると“見た目はURLっぽいのに実体が違う”状態になりがちです。トラブル時は、いったんテキスト型(短いテキスト)でURLを管理し、表示が安定してからハイパーリンク型へ戻すのも有効です。
原因4:コントロールの更新タイミング(イベント)
レコードごとにURLを切り替える設計では、URLを更新してもWebブラウザー側が更新されず、古いページのまま残ることがあります。これは、更新イベントの選び方が原因になりやすいです。
- レコード移動で確実に変えたい:Form_Current
- URLフィールドを編集した直後に反映したい:AfterUpdate
- 検索・フィルター後にも追従させたい:必要に応じてRequery後に再Navigate
「編集はできているのに画面が変わらない」場合は、イベントを見直すだけで改善することがあります。
原因5:どうしても埋め込み表示が必要なら…(上級・注意点)
業務上、Accessフォーム内にWebを埋め込む必要がある場合もあります。ただし、従来型Webブラウザーコントロールは将来的に相性問題が増えやすいため、次の方針で設計すると失敗しにくいです。
- 埋め込むページは、できるだけ社内向けの軽量ページ(互換性を意識した作り)にする
- 外部サイトの埋め込みは、要件として無理がないか再確認する(ブラウザー要件・認証方式など)
- Access側で「表示できない」時の逃げ道(既定ブラウザーで開くボタン等)を必ず用意する
代替策:Accessで表示しないで「既定ブラウザーで開く」
結論として、外部サイトや複雑なWebアプリを扱うなら、Access内に埋め込むよりも既定ブラウザー(Edge/Chromeなど)で開く方がトラブルが圧倒的に少なく、保守性も高いです。
| 方法 | メリット | デメリット |
|---|---|---|
| Accessに埋め込む(Webブラウザーコントロール) | フォーム内で完結し、操作導線が短い | IE系依存・表示できないサイトが増えやすい |
| 既定ブラウザーで開く(FollowHyperlink) | 最新ブラウザーで表示でき、互換性・セキュリティ面で有利 | Accessとブラウザーが別ウィンドウになる |
| Edge(WebView2)系の仕組みを使う | 最新エンジンで埋め込みに近い体験を作れる可能性 | Runtime導入や実装方式の検討が必要で、環境依存が出ることがある |
ボタン1つで既定ブラウザーを開く(VBA例)
フォームに「Webを開く」ボタンを置き、URLフィールドを既定ブラウザーで開く例です。埋め込み表示が不安定な環境でも、これなら比較的安定します。
Private Sub cmdOpenWeb_Click()
If IsNull(Me!URL) Or Me!URL = "" Then
MsgBox "URLが空です。", vbExclamation
Exit Sub
End If
Application.FollowHyperlink Me!URL
End Sub
この方式にしておくと、Accessのフォームは「URLを管理する」「必要な時に開く」という役割に徹し、Web表示の互換性はブラウザーに任せられます。結果として、運用・サポートの負担が大きく下がります。
WebView2(Edge)を検討するときの現実的な判断基準
「どうしてもフォーム内にWebを表示したい」「IE系では表示できないが、埋め込み体験は捨てたくない」という場合、EdgeのWebView2を使う選択肢が話題になります。ただし、Access単体の標準機能として“そのまま置き換えられる”ものではなく、採用には前提条件があります。
- WebView2 RuntimeがクライアントPCに導入されている(または配布できる)
- 社内PCの更新手順・権限(管理者権限が必要か)をクリアできる
- Access側の実装方式(ActiveX/アドイン/外部コンポーネント等)を検討できる
環境によっては、Runtimeが未導入で表示領域が黒い四角に見えたり、コンポーネントの登録がうまくいかなかったりすることもあります。導入を進める場合は、まずは社内の標準PC 1台で「表示できる」「再配布できる」「更新で壊れない」を確認し、段階的に広げるのが安全です。
よくある質問
ウィザード(ハイパーリンクの挿入)を後から出す方法はありますか?
基本的には、ウィザードはコントロール作成時にだけ起動します。あとから同じダイアログを再表示するよりも、いったん削除して追加し直すか、プロパティを手動で見直す方が早いことが多いです。
同じ手順なのに人によって出たり出なかったりします
この差は、コントロールウィザードのオン/オフだけでなく、信頼センター設定(信頼済み場所、ActiveX許可)やOfficeのビット数(32/64bit)、Windowsのセキュリティポリシーなどが影響している場合があります。まずは「ウィザードが出るか」「簡単なURLが表示できるか」を基準に切り分けると原因に近づけます。
Webブラウザーコントロールは使わない方がいいですか?
用途次第です。社内で管理された軽量ページを表示するなど、要件が限定されるなら有効です。一方で、外部サイトや最新Webアプリを表示したい場合は相性問題が出やすいため、既定ブラウザーで開く設計を優先し、どうしても埋め込みが必要なときだけ別案(WebView2等)を検討するのが現実的です。
まとめ:最短で直すなら「杖アイコン確認→削除して追加し直し」
AccessでWebブラウザーコントロールを追加しても「ハイパーリンクの挿入」ダイアログが出ない場合、まず疑うべきはコントロールウィザードがオフになっていることです。デザインビューで杖アイコンをオンにし、コントロールを削除して追加し直すだけで解決するケースが多くあります。
それでも表示が真っ黒/表示されない場合は、IE系依存による限界や、信頼センター・ActiveX設定、URLの形式、イベント更新のタイミングなど、複数の要因を順に切り分けていきましょう。最終的に外部Webの表示が目的なら、Access内に埋め込まず既定ブラウザーで開く設計が、安定性と保守性の面で最もおすすめです。

コメント