目次
概要
Excel VBA には WorksheetFunction.EncodeURL
が用意されており、全角文字や記号を安全に URL へ組み込むことができます。本記事では、エンコードした文字列をクエリに追加し、Microsoft Edge を起動してページを表示する手順を解説いたします。対象ページは https://morinokabu.com/ としますが、他サイトでも同様に利用できます。
動作環境
項目 | 内容 |
---|---|
OS | Windows 10 または 11 |
Excel | Microsoft 365、Excel 2019、Excel 2016 |
追加ツール | なし(標準機能のみで実装) |
サンプルコード
Option Explicit
Sub OpenEncodedURLInEdge()
Dim baseURL As String ' ベース URL
Dim searchKeyword As String ' クエリ文字列
Dim encodedQuery As String ' URL エンコード後の文字列
Dim shellObj As Object ' Shell.Application
baseURL = "https://morinokabu.com/"
searchKeyword = "森 林太郎"
' URL エンコード
encodedQuery = WorksheetFunction.EncodeURL(searchKeyword)
' Edge 起動
Set shellObj = CreateObject("Shell.Application")
shellObj.ShellExecute "microsoft-edge:" & baseURL & encodedQuery
End Sub
コードのポイント
処理 | 説明 |
---|---|
WorksheetFunction.EncodeURL | Excel 2013 以降で使用可能です。空白や日本語をパーセントエンコーディングへ変換します。 |
Shell.Application と ShellExecute | "microsoft-edge:" プロトコルを付与すると Microsoft Edge が起動します。 |
よくある質問
質問 | 回答 |
---|---|
EncodeURL が見つからない場合 | Excel のバージョンをご確認ください。Excel 2010 以前では未実装です。独自関数で置き換える必要があります。 |
Edge のウィンドウを待機したい場合 | Shell 関数で "cmd /c start /wait microsoft-edge:" & baseURL & encodedQuery を実行し、待機オプションを利用します。 |
まとめ
WorksheetFunction.EncodeURL
と ShellExecute
を組み合わせると、Excel VBA から日本語を含む URL を安全に生成し、Microsoft Edge に渡すことができます。検索フォームや API 連携で動的なクエリを生成する際にご活用ください。