このaaa.htmlは、JavaScriptの記述により、引数を受け付けるような機能を持っています。
例えば「aaa.html?id=1&age=3」というURLへアクセスすると、idとageを受け取った結果を表示してくれます。
別のhtmlファイルからアンカータグで
<a href="aaa.html?id=1&age=3">リンク</a>
と記述すると、こちらが期待する動きをしてくれるのですが、
Excelファイルのハイパーリンクで「aaa.html?id=1&age=3」と記述しても、エラーが出てファイルが開けません。
Excelからでも「aaa.html」へのハイパーリンクであれば正常に開きますが、当然引数の情報が送れません。
何か解決策があれば教えていただきたいです。
こちらの環境はexcel2010ですけど。
当該のセルを右クリックして表示される「ハイパーリンク」のダイア録の一番下、「アドレス」欄を適切に設定してやること(例:http://www.example.com/aaa.html?id=1&age=3)で、開けました。
お試しになってみては如何でしょうか。
ShellExecuteを利用してみてください
http://www.excel-excel.com/tips/vba_111.html
aaa.html#id=1&age=3
といった形で引数を付加して、ページ側で読み取るという事もできるかと思います。
Excelファイルは自分たちで出力していて、
htmlファイル群は別システムで出力される仕組みなので、
可能であればExcel側の設定や記述だけで解決したいです。
html出力システムの担当に、記載していただいた形での
引数の受け取りは可能かどうかを確認してみます。
こんな過去の質問を見つけました
http://q.hatena.ne.jp/1291340820
ついでに、面白そうなので一番上の回答の方法を
しろうとのお遊びで勝手にやってみました(意図と違うかも…?)
//パラメータがない、キーワード名が違う、値に区切り記号入ってる等のパターンは考慮してないよ!
<html>
<head>
<script type="text/javascript">
window.onload = function onLoad() {
var param = GetFlagmentParam();
var age = document.getElementById("age");
var id = document.getElementById("id");
age.innerHTML = "age : " + param["age"];
id.innerHTML = "id : " + param["id"];
}
function GetFlagmentParam(){
var param = {};
var pairs = document.location.hash.slice(1).split('&');
var pair;
var i;
var I = pairs.length;
for (i = 0; i < I; ++i) {
pair = pairs[i].split('=');
param[pair[0]] = pair[1];
}
return param;
}
</script>
<title>けんしょう</title>
</head>
<body>
えい!結果表示だ!
<div id="id"></div>
<div id="age"></div>
</body>
</html>
Excel側での解決方法が見当たらない場合は、
パラメータを受け取る側での改修となるかもしれませんので、
その場合参考にさせて頂きたいと思います。
具体的なコードの記述、とてもありがたいです。
今後とも、どうぞよろしくお願い致します。