<HTML>
<HEAD>
<META http-equiv="Content-type" content="text/html; charset=shift_jis" />
<TITLE>Excel へアクセス</TITLE>
<STYLE type="text/css">
* {
font-size: 12px;
}
INPUT {
font-weight: bold;
}
.command {
width: 400px;
}
</STYLE>
<SCRIPT language="VBScript">
Dim ExcelApp
' ブックを開くのは一つだけ
Dim ExcelBook
' **********************************************************' ブックを開く' **********************************************************
Function OpenExcelBook()
if Trim( document.all( "target" ).value ) = "" then
alert( "Excel を選択して下さい " )
Exit Function
end if
If Not IsObject(ExcelApp) Then
Set ExcelApp = CreateObject("Excel.Application")
alert( "Excel.Applicationをロードしました " )
End If
If IsObject(ExcelBook) Then
alert( "既にブックは1つロードされています。いったん閉じて下さい " )
Exit Function
End If
Set ExcelBook = ExcelApp.Workbooks.Open(document.all( "target" ).value)
' アクティブなウィンドウを最大化
ExcelApp.ActiveWindow.WindowState = 2
' 表示する( デフォルトは非表示
ExcelApp.Visible = true
End Function
' **********************************************************' ブックを閉じる' **********************************************************
Function CloseExcelBook()
If Not IsObject(ExcelApp) Then
alert( "ブックを開いて下さい " )
Exit Function
End If
If Not IsObject(ExcelBook) Then
alert( "ブックを開いて下さい " )
Exit Function
End If
' Excel として閉じる
ExcelBook.Close()
' オブジェクトとして開放する
Set ExcelBook = Nothing
' 変数として初期化する
ExcelBook = Empty
End Function
' **********************************************************' セルにデータをセットする' **********************************************************
Function SetCellData()
If Not IsObject(ExcelApp) Then
alert( "ブックを開いて下さい " )
Exit Function
End If
If Not IsObject(ExcelBook) Then
alert( "ブックを開いて下さい " )
Exit Function
End If
ExcelBook.Sheets("Sheet1").Cells(5, 5) = "あいうえお"
End Function
' **********************************************************' 変更されたブックを変更をキャンセルして閉じる' **********************************************************
Function CloseChangedExcelBook()
If Not IsObject(ExcelApp) Then
alert( "ブックを開いて下さい " )
Exit Function
End If
If Not IsObject(ExcelBook) Then
alert( "ブックを開いて下さい " )
Exit Function
End If
' 保存した事にする
ExcelBook.Saved = True
' Excel として閉じる
ExcelBook.Close()
' オブジェクトとして開放する
Set ExcelBook = Nothing
' 変数として初期化する
ExcelBook = Empty
End Function
' **********************************************************' 変更されたブックを保存して閉じる' **********************************************************
Function SaveExcelBook()
If Not IsObject(ExcelApp) Then
alert( "ブックを開いて下さい " )
Exit Function
End If
If Not IsObject(ExcelBook) Then
alert( "ブックを開いて下さい " )
Exit Function
End If
' 保存
ExcelBook.Save
' Excel として閉じる
ExcelBook.Close()
' オブジェクトとして開放する
Set ExcelBook = Nothing
' 変数として初期化する
ExcelBook = Empty
End Function
' **********************************************************' Excel の確認メッセージがでないようにする' **********************************************************
Function CancelDisplayAlert()
If Not IsObject(ExcelApp) Then
alert( "ブックを開いて下さい " )
Exit Function
End If
ExcelApp.DisplayAlerts = false
End Function
' **********************************************************' Excel を終了する' **********************************************************
Function EndExcel()
If Not IsObject(ExcelApp) Then
alert( "ブックを開いて下さい " )
Exit Function
End If
' 処理をキャンセルする
If IsObject(ExcelBook) Then
Call CloseChangedExcelBook()
End If
' アプリケーションとして終了する
ExcelApp.Quit
' オブジェクトとして開放する
Set ExcelApp = Nothing
' 変数として初期化する
ExcelApp = Empty
End Function
</SCRIPT>
</HEAD>
<BODY>
<INPUT id="target" type="file" style='width:600px;'>
<br>
<INPUT
class="command"
type="button"
value="Excel Book のロード"
onClick='Call OpenExcelBook()'
>
<br>
<INPUT
class="command"
type="button"
value="変更していない Excel Book を閉じる"
onClick='Call CloseExcelBook()'
>
<br>
<INPUT
class="command"
type="button"
value="セルにデータをセットする"
onClick='Call SetCellData()'
>
<br>
<INPUT
class="command"
type="button"
value="変更済みの Excel Book を変更をキャンセルして閉じる"
onClick='Call CloseChangedExcelBook()'
>
<br>
<INPUT
class="command"
type="button"
value="変更済みの Excel Book を保存して閉じる"
onClick='Call SaveExcelBook()'
>
<br>
<INPUT
class="command"
type="button"
value="Excel の確認メッセージがでないようにする"
onClick='Call CancelDisplayAlert()'
>
<br>
<INPUT
class="command"
type="button"
value="Excel を終了する"
onClick='Call EndExcel()'
>
</BODY>
</HTML>