Excel VBA で URL エンコードした文字列を Microsoft Edge で表示する方法

目次

概要

Excel VBA には WorksheetFunction.EncodeURL が用意されており、全角文字や記号を安全に URL へ組み込むことができます。本記事では、エンコードした文字列をクエリに追加し、Microsoft Edge を起動してページを表示する手順を解説いたします。対象ページは https://morinokabu.com/ としますが、他サイトでも同様に利用できます。


動作環境

項目内容
OSWindows 10 または 11
ExcelMicrosoft 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.EncodeURLExcel 2013 以降で使用可能です。空白や日本語をパーセントエンコーディングへ変換します。
Shell.ApplicationShellExecute"microsoft-edge:" プロトコルを付与すると Microsoft Edge が起動します。

よくある質問

質問回答
EncodeURL が見つからない場合Excel のバージョンをご確認ください。Excel 2010 以前では未実装です。独自関数で置き換える必要があります。
Edge のウィンドウを待機したい場合Shell 関数で "cmd /c start /wait microsoft-edge:" & baseURL & encodedQuery を実行し、待機オプションを利用します。

まとめ

WorksheetFunction.EncodeURLShellExecute を組み合わせると、Excel VBA から日本語を含む URL を安全に生成し、Microsoft Edge に渡すことができます。検索フォームや API 連携で動的なクエリを生成する際にご活用ください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次