通常の「インターネット」では行いません。「信頼済みサイト」でのみ ActiveX を実行可能にしてから対象ページを登録して、WEB ページのデータを Excel のブックに転送して保存します。 業務アプリケーションとして「運用ルール」がきちんと決められ、システム管理者が居られると言う前提で通常は利用されます。 ▼ 以下、前提となる設定 画像では、「localhost」ですが、イントラネットですと、単純にサーバー名になります 以下ソースコード
<!DOCTYPE html> <html> <head> <meta http-equiv="X-UA-Compatible" content="IE=10"> <meta http-equiv="Content-type" content="text/html; charset=utf-8"> <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 ExcelAction() ' 読み込む Excel のパス Dim FilePath : FilePath = "C:\temp\Book1.xlsx" ' 書き込む Excel のパス Dim FilePathResult : FilePathResult = "C:\temp\Book1_result.xlsx" ' Excel.Application Dim ExcelApp ' ブック Dim MyBook ' シート Dim Sheet Set ExcelApp = CreateObject("Excel.Application") ' 表示状態にする( 非表示にしても良いが、 ' 処理が長い場合は表示しておいたほうが良い ExcelApp.Visible = True ' 確認ダイアログを出さない ExcelApp.DisplayAlerts = False ' ブックを読み込む Set MyBook = ExcelApp.Workbooks.Open(FilePath) ' 対象シート Set Sheet = MyBook.Sheets("Sheet1") ' セルにデータをセット Dim tbl,rows,I,cols ' テーブルオブジェクトを取得 ' ※ VB で配列は、() で参照する Set tbl = document.getElementsByTagName("table")(0) ' 行のコレクション Set rows = tbl.getElementsByTagName("tr") ' th は読み飛ばすので、1 から開始 For I = 1 to ( rows.length - 1 ) ' 列のコレクション Set cols = rows(I).getElementsByTagName("td") For J = 0 to ( cols.length - 1 ) if J = 0 or J = 3 then ' 数字データを文字列としてセルにセットする Sheet.Cells(I+5, J+1) = "'" & cols(J).innerText else Sheet.Cells(I+5, J+1) = cols(J).innerText end if Next Next ' 上書き保存 MyBook.SaveAs FilePathResult ' Excel を終了 ExcelApp.Quit ' Excel 解放 Set ExcelApp = Nothing ' 保存したブックを Excel で実行 Call LoadExcel( FilePathResult ) End Function </script> </head> <body> <input type="button" value="Excel起動" language="VBScript" onclick='Call ExcelAction()'> <style> #lboxtable * { font-family: 'メイリオ','MS Pゴシック'; font-size: 12px; } #lboxtable table { border-collapse: collapse; border: solid #000000 1px; background-color: #ffffff; } #lboxtable td{ padding: 5px; border: solid #000000 1px; white-space: nowrap; } #lboxtable th { padding: 5px; border: solid #000000 1px; background-color: silver; white-space: nowrap; } </style> <div id="lboxtable"> <table> <tr> <th>社員コード</th> <th>氏名</th> <th>フリガナ</th> <th>所属</th> <th>性別</th> <th>給与</th> </tr> <tr> <td>0001</td> <td>浦岡 友也</td> <td>ウラオカ トモヤ</td> <td>0003</td> <td>0</td> <td>270000</td></tr> <tr> <td>0002</td> <td>山村 洋代</td> <td>ヤマムラ ヒロヨ</td> <td>0003</td> <td>1</td> <td>300000</td></tr> <tr> <td>0003</td> <td>多岡 冬行</td> <td>タオカ フユユキ</td> <td>0002</td> <td>0</td> <td>250000</td></tr> <tr> <td>0004</td> <td>高田 冬美</td> <td>タカタ フユミ</td> <td>0003</td> <td>1</td> <td>250000</td> </tr> </table> </div> </body> </html>
IE 専用なので、スクリプトは VBScript を使用しています。Windows のオブジェクトなので、VBScript で使うほうがいろいろ都合が良く、VB や VBA の情報が参考にできます ⭐ 元になるブックは、C:\temp\Book1.xlsx としていますが、場所に制限はありません ⭐ 転送後、別のブックに保存してから、再度 Excel を普通に呼び出して開いています ⭐ 元になるブックを書式として完成させておいて、データのみ転送するのが本来の方法です ⭐ Excel に対する操作はもっといろいろ可能です
|
【IEの最新記事】
- IE11 を アプリケーションのプラットホームとして使う為の3つの設定
- IE11 : 実行済みのページのソースをクリップボードにコピーする
- VBScript : IE11のソースエディタの変更
- IE11 で VBScript のクラスを使用して Excel(Excel.Application) の処理を検証
- VBScript のコードを書いた HTML を IEのツールメニューにアドオンする
- IE11 から VBScript で ODBCで使用されるデータベース(例えばSQLServer) より Excel でデータをエクスポートする
- IE11 で『安全だとマークされていないActiveX』を使用可能にして実行可能な Windows 処理のサンプル
- IE11 で VBScript を使う場合の注意事項 ( 古い社内アプリ移行時必見 )
- IE11 でドキュメントモードを変更して IE8 として VBscript から jQuery にアクセスする
- IEによる JavaScriptのセキュリティ上の制限とその解除
- IEの設定 : 信頼済みサイトに移動する時にダイアログを表示しないようにする
- IE8 までは、ブロック要素でなくても『page-break-after』は動作してました。というか、正式ドキュメントにそう書いてあります。
- IE11 : 画像のフルスクリーン API
- Windows7 用の IE11 がリリースされて、めでたく『WebGL』が使えるようになりました。
- HTTP ヘッダや META 要素に指定する、X-UA-Compatible による IEのドキュメントモードの変更
- IE 専用 : 「信頼済みサイト」でのみ行う、InternetExplorer.Application オブジェクト
- IE9 では動かない WEBアプリケーションの為に、IE8 のドキュメントモードで強制的に動かす為の META 記述
- IEのセキュリティゾーン関連のレジストリエントリ