Accessのフォームにつくったボタンをクリックしたら、ハイパーリンクに変数がセットされ、その変数でGmailの受信トレイを検索する・・・・といった仕組みを作りたかった。
[code]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
[/code]
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の仕様かなんかだろうか。
これ以上調べてもわからんので、とりあえずは良しとしよ。