MS Access

AccessやExcelで作ったハイパーリンクではChromeブラウザ上のGmailの受信トレイを検索できんかった・・・がShellならできた

投稿日:2020年9月30日 更新日:

Accessのフォームにつくったボタンをクリックしたら、ハイパーリンクに変数がセットされ、その変数でGmailの受信トレイを検索する・・・・といった仕組みを作りたかった。

Private Sub cmdメール検索_Click()
Dim myTextValue As String, orderno As String, bikou As String
On Error Resume Next
orderno = Me.注文番号
bikou = Me.お名前等備考
myTextValue = "https://mail.google.com/mail/u/0/#search/" & orderno & "%23" & bikou '%23は空白を意味

'    NGだったパターン
'    Me.cmdメール検索.HyperlinkAddress = "" 
'    Me.cmdメール検索.HyperlinkAddress = myTextValue

'    OKだったパターン
Dim sApl
sApl = "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" '// ブラウザのパス
Call Shell(sApl &; " " & myTextValue)
End Sub

WordPressのエディタがあほなせいで、アンパサン(&)やダブルクオーテーション(”)が変になっているが、読み替えて欲しい。済まない。

EdgeやFirefoxでは、HyperlinkAddressプロパティに変数をセットするだけで、思った通りに検索して、その結果を出してくれる(上記コードの「NGだったパターン」で成功する)。

しかしChromeでは、うまくいかない。
画面を見ていると、どうやらプログラムを実行後に、ChromeのURL欄に入力された#searchが##searchに置き換えられ、そのあと#inboxにリダイレクトされたうえで、#searchが消される。

念のため、Excelのセルに、VBAを使わずに「https://mail.google.com/mail/u/0/#search/354942-20200929%207010111」といった感じのリンクを付けてクリックしてみたが、やはり同じだった。この時点でVBA犯人説は消えた。

となると今回悪いのは、MSのアプリでもVBAでもない。Chromeだ。
しかし、Google検索しても、このトラブルの回避方法について誰も書いていない。

諦めかけたところで、下記の記事を見つけ、WindowsのShellを使うやり方を試してみた。

セルの値を好きなブラウザでGoogle検索する | Excel作業をVBAで効率化

結果、上記コードの「OKだったパターン」で成功。

意味が分からんので、もやもやはしているけど、Chromeの仕様かなんかだろうか。
これ以上調べてもわからんので、とりあえずは良しとしよ。

-MS Access

執筆者:

関連記事

no image

サブフォームで苦労

Access覚書。 サブフォームつきのフォームからダイアログ・フォームを呼び出す。 ダイアログフォームのリスト形式のレコードをクリックしたら、呼び出し元のフォームのサブフォームに値を追加して、次のため …

no image

Accessでフォームフィルタの結果をExcelにエクスポートする

ちょっと、苦労した。 Private Sub cmdDMデータ作成_Click() On Error GoTo Err_cmdDMデータ作成_Click Dim rstf As String Dim …

no image

「抽出条件 フォーム access not in クエリ」とか「forms access in 抽出条件 複数」とかでググっても出てこなかったので、メモ

Accessでフォームからクエリに抽出条件をパラメータで渡すやり方が分からなくて、数時間苦労。 このタイトルがGoogleの肥やしになって、このサイトに来てくれる人が増えれば。。。 要するに私がやりた …

no image

VBAで英字混じりの引数から数字のみを取り出す関数

たとえば、abcABC123456XYGという引数から、123456のみを取り出したい。 VBAの組み込み関数で、適当なのがありそうだけど、無いみたい。 カスタム関数を作るにも、これはという情報がググ …

no image

Accessで「イベントプロパティに指定した式MouseMoveでエラーが発生しました。フォームまたはレポート上のActiveX コントロールを読み込むときにエラーが発生しました。」

フォームに配置したプログレスバーコントロールの上をマウスポインタが横切ろうとすると、必ず上のエラーメッセージが表示される。 原因がわからず、対処もできず、困っていた。 Google先生も頼りにならず、 …