HTA の JavaScript から Excel の VBA コードに引数を渡す必要があります。
- VBA 関数を正常に呼び出すことはできますが、文字列引数を正しく渡すことができません。
- JavaScript 関数は、さまざまな文字列引数を渡すことができます。
- 以下は、単純なデモ形式のコードです。
- Excel-VBA コード
Sub subTest(strName As String) MsgBox strName End Sub
Javascript を使用した HTA コード
<!DOCTYPE html>
<html>
<head>
<title>HTA</title>
<hta:application
id="oHta"
applicationname="htaNavi"
border="1"
borderstyle = normal
contextmenu = "yes"
caption="Navigator"
sysmenu="yes"
WINDOWSTATE="maximize"
>
</head>
<body>
<input type="button" value="testing" onclick="funRun('testng string')" />
<input type="button" value="testing second" onclick="funRun('testng')" />
</body>
<script>
var objExl;
var objWb;
var objExl =new ActiveXObject("Excel.Application");
objExl.Visible = true;
var objWb = objExl.Workbooks;
var strpath = '\path\testing_excel_web.xls';
objWb.Open(strpath);
function funRun(strName)
{
alert(strName);
objWb.Application.Run('testing_excel_web.xls!subTest(strName)');
}
</script>
</html>
subTest を呼び出すことはできますが、メッセージ ボックスは strName を文字列として入力しますが、「テスト文字列」をテキストとして入力しません。