紆余曲折あったがひとまずこの形に
使い勝手を考えたらエクセル側発信での制御がよかったが、あまりいい策がないため、hta側主体で操作することにした。Excelopenをスタートにしようかとも考えたが、開いているエクセルをそのまま操作できればその方がなおいいため、そうすることとした。
.hta
x
40
40
1
<html><head>
2
<title>HTAのサンプル</title>
3
<script language="VBScript">
4
5
dim setdata(10)
6
dim getdata(10)
7
8
9
Sub Main ()
10
'On Error Resume Next
11
12
Dim objXls, objWorkbook, objSheet
13
Set objXls = GetObject(, "Excel.Application")
14
15
Set objSheet = objXls.Sheets(1)
16
objSheet.Activate
17
18
' データ取得範囲を指定
19
for i=1 to 10
20
setdata(i)=objSheet.cells(i,1).Text
21
next
22
23
' …いろいろ処理する…
24
25
for i =1 to 10
26
objSheet.Cells(i,3).Value = setdata(i)
27
next
28
29
Set objXls = Nothing
30
Set objSheet = Nothing
31
End Sub
32
33
</script>
34
</head>
35
<body>
36
処理を終えたら終了してください
37
<INPUT type="button" name="button1" value="開始" onClick="Main()">
38
<INPUT type="button" name="button2" value="終了" onClick="Close()">
39
40
</body></html>
コメント