紆余曲折あったがひとまずこの形に
使い勝手を考えたらエクセル側発信での制御がよかったが、あまりいい策がないため、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>
コメント