SQLの窓

2011年06月26日


IE 専用 : 「信頼済みサイト」でのみ行う、WEBページのデータの Excel への転送

通常の「インターネット」では行いません。「イントラネット」または、「信頼済みサイト」でのみ ActiveX を実行可能にして、WEB ページのデータを Excel のブックに転送して保存します。

業務アプリケーションとして、「運用ルール」がきちんと決められ、システム管理者が居られるとい前提で通常は利用されます。

▼ 以下、前提となる設定( 通常アプリケーションで設定します )




画像では、「localhost」ですが、イントラネットですと、単純にサーバー名になります
<?
header( "Content-Type: text/html; Charset=utf-8" );
header( "pragma: no-cache" );
header( "Expires: Wed, 31 May 2000 14:59:58 GMT" );
header( "Cache-control: no-cache" )


?>
<!DOCTYPE html>
<html>
<head>
<neta http-equiv="Content-type" content="text/html; charset=utf-8">
<?// IE 専用 ?>
<script FOR="window" EVENT="onunload" language="VBScript">

	if IsObject( WSH ) then
		Set WSH = Nothing
	end if

</script>
<script language="VBScript">

Dim WSH
Dim ExcelApp

' ******************************************************
' Excel 実行
' ******************************************************
Function LoadExcel(strPath)

	If Not IsObject(WSH) Then
		Set WSH = CreateObject("WScript.Shell")
	End If

	Call WSH.Run( "RunDLL32.EXE shell32.dll,ShellExec_RunDLL " & _
		strPath )

End Function

' ******************************************************
' Excel 処理
' ******************************************************
Function ExcelActiont()

	Dim ExcelApp
	Dim MyBook
	Dim Sheet

	Set ExcelApp = CreateObject("Excel.Application")

	' 表示状態にする( 非表示にしても良いが、
	' 処理が長い場合は表示しておいたほうが良い
	ExcelApp.Visible = True
	' 確認ダイアログを出さない
	ExcelApp.DisplayAlerts = False

	' ブックを読み込む
	Set MyBook = ExcelApp.Workbooks.Open("C:\Book1.xlsx")

	' シート
	Set Sheet = MyBook.Sheets("Sheet2")

	' そのシートを選択状態にする
	Sheet.select

	' セルにデータをセット
	' 5行目 2列

	Dim tbl,rows,I,cols

	' テーブルオブジェクトを取得
	' ※ 配列は、() で参照する
	Set tbl = document.getElementsByTagName("table")(0)

	' 行のコレクション
	Set rows = tbl.getElementsByTagName("tr")

	' TH は読み飛ばす
	For I = 1 to ( rows.length - 1 )
		' 列のコレクション
		Set cols = rows(I).getElementsByTagName("td")
		' 2番目( 名前 )
		Sheet.Cells(I+5, 2) = cols(1).innerText
	Next

	MyBook.SaveAs "C:\Book_test.xlsx"

	' Excel を終了
	ExcelApp.Quit

	' Excel 解放
	Set ExcelApp = Nothing

	' 保存したブックを Excel で実行
	Call LoadExcel( "C:\Book_test.xlsx" )

End Function


</script>
</head>
<body>
<input type="button" value="Excel起動" language="VBScript" onclick='Call ExcelActiont()'>



<STYLE type=text/css>
#lboxtable * {
	font-family: 'MS Pゴシック';
	font-size: 12px;
}
#lboxtable table {
	border-collapse: collapse;
	border-style: solid;
	border-color: #000000;
	border-width: 1px;
	background-color: #FFFFFF;
}
#lboxtable td {
	padding: 5px;
	border-style: solid;
	border-color: #000000;
	border-width: 1px;
	/* white-space: nowrap; */
}
#lboxtable th {
	padding: 5px;
	border-style: solid;
	border-color: #000000;
	border-width: 1px;
	background-color: silver;
	/* white-space: nowrap; */
}
</STYLE>
<DIV id="lboxtable">
<table><TBODY>
<TR class=LboxTr>
<TH class=LboxTh  noWrap>社員コード</TH>
<TH class=LboxTh  noWrap>氏名</TH>
<TH class=LboxTh  noWrap>フリガナ</TH>
<TH class=LboxTh  noWrap>所属</TH>
<TH class=LboxTh  noWrap>性別</TH>
<TH class=LboxTh  noWrap>給与</TH></TR>
<TR class=LboxTr>
<TD class=LboxTd  noWrap>0001</TD>
<TD class=LboxTd  noWrap>浦岡 友也</TD>
<TD class=LboxTd  noWrap>ウラオカ トモヤ</TD>
<TD class=LboxTd  noWrap>0003</TD>
<TD class=LboxTd  noWrap>0</TD>
<TD class=LboxTd  noWrap>270000</TD></TR>
<TR class=LboxTr>
<TD class=LboxTd  noWrap>0002</TD>
<TD class=LboxTd  noWrap>山村 洋代</TD>
<TD class=LboxTd  noWrap>ヤマムラ ヒロヨ</TD>
<TD class=LboxTd  noWrap>0003</TD>
<TD class=LboxTd  noWrap>1</TD>
<TD class=LboxTd  noWrap>300000</TD></TR>
<TR class=LboxTr>
<TD class=LboxTd  noWrap>0003</TD>
<TD class=LboxTd  noWrap>多岡 冬行</TD>
<TD class=LboxTd  noWrap>タオカ フユユキ</TD>
<TD class=LboxTd  noWrap>0002</TD>
<TD class=LboxTd  noWrap>0</TD>
<TD class=LboxTd  noWrap>250000</TD></TR>
<TR class=LboxTr>
<TD class=LboxTd  noWrap>0004</TD>
<TD class=LboxTd  noWrap>高田 冬美</TD>
<TD class=LboxTd  noWrap>タカタ フユミ</TD>
<TD class=LboxTd  noWrap>0003</TD>
<TD class=LboxTd  noWrap>1</TD>
<TD class=LboxTd  noWrap>250000</TD></TR>
</TBODY></table></DIV>

</body>
</html>

IE 専用なので、スクリプトは VBScript を使用しています。Windows のオブジェクトなので、VBScript で使うほうがいろいろ都合が良く、VB や VBA の情報が参考にできます

元になるブックは、C:\Book1.xlsx としていますが、場所に制限はありません
転送後、別のブックに保存してから、再度 Excel を普通に呼び出して開いています
元になるブックを書式として完成させておいて、データのみ転送します
Excel に対する操作はもっといろいろ可能です

※ 元のフォーマットのシートを元に、個人単位の単票をシートに氏名を付けて複数シート
※ を収めたブックを作成するのが一般的です


タグ:VBScript excle IE
【IEの最新記事】
posted by lightbox at 2011-06-26 13:32 | IE | このブログの読者になる | 更新情報をチェックする
バッチ処理

Microsoft Office
container 終わり

フリーフォントで簡単ロゴ作成
フリーフォントでボタン素材作成
フリーフォントで吹き出し画像作成
フリーフォントではんこ画像作成
ほぼ自由に利用できるフリーフォント
フリーフォントの書体見本とサンプル
画像を大きく見る為のウインドウを開くボタンの作成

Android SDK ポケットリファレンス
改訂版 Webデザイナーのための jQuery入門
今すぐ使えるかんたん ホームページ HTML&CSS入門
CSS ドロップシャドウの参考デモ
Google Hosted Libraries
cdnjs
BUTTONS (CSS でボタン)
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり