Excel で URLパラメーターを使う
タイトルだけでは意味不明かもしれません。ご存知の方も多いかもしれませんが、 URLパラメーターとは URLの ? 以降の文字列のことを言います。
https://www.google.com/search?q=Excel&oq=Excel&aqs=chrome..69i57j69i59l3j35i39l2j0i131i433j0i433.2123j0j15&sourceid=chrome&ie=UTF-8
各パラメーターによってリンク先の挙動を変える事ができます。これによりサーバー上でもローカル上でも Excel の苦手としている部分を WEB技術に補ってもらう事ができます。
ただし、Excel ではセキュリティ上の対策だとは思いますが、ハイパーリンクで URLパラメーター付きの URL を実行するとパラメーター部分が抜けた状態でリンク先に飛びます。これでは意味がありません。
今回は少しイレギュラーな方法で URLパラメーターを保持したままリンク先に飛ぶ方法を紹介します。
答えはリダイレクト
すぐに答えを言ってしまうと直にリンク先を指定するのではなく、以下のコードを任意のローカル上に作成してそのリンク先を経由して目的のリンク先に飛ぶという事です。
<html><meta http-equiv="refresh" content ="0;url= リンク先 ?v= URLパラメーター "></html>
この meta refresh は閉鎖したホームページから新しいホームページへ移動させる為などに使われるものです。 content で移動する時間を設定する事ができます。(何秒後にどこどこへ移動します。と表記されているのを見たことはありませんか?)
FormeCollector2 の FormeQRCoder を起動する。にも利用しています。(FormeCollector2では URLパラメーターではなくURLアンカーを利用しています。)
このコードを作成する VBAの主要なコードは以下になります。
Open 保存先.html For Output As #1
Print #1, "<html><meta http-equiv=""refresh"" content =""0;url = " & リンク先 & "#v=" & URLパラメーター & """></html>";
Close #1
ActiveWorkbook.FollowHyperlink Address:=保存先.html
この方法なら、Windows版、Mac版関係無く利用する事が可能です。あくまで利用するのはユーザーに任せますが、情報漏洩防止を徹底するなら URLパラメーターを利用しない事を検討すべきですし、作成したリダイレクト用の htmlファイルを削除するなどの追加コードも必要です。特に重要な情報ではこのコードを利用しないようにした方が良いでしょう。
より詳しい VBAコードは FormeCollector2 の プロジェクトロック解除コードから、プロジェクトロック解除コードを入手して FormeCSVmodule 内のコードを確認してください。
解除には Forme Go または Forme Pro のthrowawaykeyが必要です。
![](/note/forme_blog.png)
プロジェクトロック解除コードを実行する際は先に FormeQRcoder を起動。 を先に実行していてください。暗号用の QRコードが表示されるようになるので便利です。またパーソナルコンピュータの登録も済ませておく事をお勧めします。