紆余曲折あったがひとまずこの形に
使い勝手を考えたらエクセル側発信での制御がよかったが、あまりいい策がないため、hta側主体で操作することにした。Excelopenをスタートにしようかとも考えたが、開いているエクセルをそのまま操作できればその方がなおいいため、そうすることとした。
<html><head>
<title>HTAのサンプル</title>
<script language="VBScript">
dim setdata(10)
dim getdata(10)
Sub Main ()
'On Error Resume Next
Dim objXls, objWorkbook, objSheet
Set objXls = GetObject(, "Excel.Application")
Set objSheet = objXls.Sheets(1)
objSheet.Activate
' データ取得範囲を指定
for i=1 to 10
setdata(i)=objSheet.cells(i,1).Text
next
' …いろいろ処理する…
for i =1 to 10
objSheet.Cells(i,3).Value = setdata(i)
next
Set objXls = Nothing
Set objSheet = Nothing
End Sub
</script>
</head>
<body>
処理を終えたら終了してください
<INPUT type="button" name="button1" value="開始" onClick="Main()">
<INPUT type="button" name="button2" value="終了" onClick="Close()">
</body></html>
コメント