<HTML>
<HEAD>
<META http-equiv="Content-type" content="text/html; charset=shift_jis" />
<TITLE>Excel処理</TITLE>
<SCRIPT type="text/javascript">
// ***********************************************// VBScript の呼び出し// Excel は、VBScript のほうが問題回避できる// 引数は、ファイルのパスの入ったINPUT エレメント// ***********************************************
function test(obj) {
TestExcel(obj)
}
</SCRIPT>
<!-- Excel の為の VBScript セクション -->
<SCRIPT language="VBScript">
Dim ExcelApp ' Excel オブジェクトは一つで良いので使いまわし用
' ************************************************' 開始' ************************************************
Function TestExcel(obj)
' ファイルのパスを表示
MsgBox(obj.value)
Dim Book ' 一つのブックを処理するインスタンス
Set Book = New ExcelAction
Call Book(ExcelApp,obj.value)
' デフォルトが非表示なので表示
Book.Visible( True )
' 二つ目のシートを使用する
Book.SelectSheetNo( 2 )
MsgBox("OK")
' 全てのプックを閉じてから、いずれかのインスタンスで終了する
' ブックが一つの場合は、閉じる必要は無い( 閉じてから終了 )
Book.Quit()
End Function
' ************************************************' クラス定義' ************************************************
Class ExcelAction
Public ExcelApp ' 共有
Public ExcelBook ' このインスタンス用
' ************************************************' コンストラクタのようなもの( New では呼ばれない )' ************************************************
Public Default Function InitSetting(ExcelApp,strPath)
If Not IsObject(ExcelApp) Then
Set Me.ExcelApp = CreateObject("Excel.Application")
else
Set Me.ExcelApp = ExcelApp
End If
Set ExcelApp = Me.ExcelApp
Set ExcelBook = ExcelApp.Workbooks.Open(strPath)
' アクティブなウィンドウを最大化
ExcelApp.ActiveWindow.WindowState = 2
' 警告メッセージを非表示
ExcelApp.DisplayAlerts = False
end function
' ************************************************' メソッド ( 表示・非表示の設定 )' ************************************************
Public Function Visible(bFlg)
Me.ExcelApp.Visible = bFlg
End Function
' ************************************************' Book を閉じる' ************************************************
Public Function Close()
If TypeName(ExcelBook) = "Workbook" Then
' 保存した事にする
ExcelBook.Saved = True
End If
ExcelBook.Close()
Set ExcelBook = Nothing
ExcelBook = Empty
End Function
' ************************************************' Excel 本体の終了' ************************************************
Public Function Quit()
If IsObject(ExcelBook) Then
If TypeName(ExcelBook) = "Workbook" Then
' 保存した事にする
ExcelBook.Saved = True
End If
End if
If IsObject(ExcelApp) Then
ExcelApp.Quit
Set ExcelApp = Nothing
End If
ExcelApp = Empty
End Function
' ************************************************' シート名によるシート選択' ************************************************
Public Function SelectSheet(strSheetName)
ExcelBook.Sheets(strSheetName).Select
End Function
' ************************************************' 番号よるシート選択' ************************************************
Public Function SelectSheetNo(No)
ExcelBook.Sheets(No).Select
End Function
End Class
</SCRIPT>
</HEAD>
<BODY>
<!-- Excel(.xls) を選択 -->
<INPUT id="target" type="file">
<!-- javascript で呼び出し(オブジェクト渡し) -->
<INPUT
type="button"
value="実行"
onClick="test(document.getElementById('target'));"
>
</BODY>
</HTML>