• 締切済み

ブラウザからエクセルを開く方法

社内のみで閲覧可能なWebページにて、クライアントサイドのエクセルを立ち上げて制御しようとしているのですが、初っ端から躓いてしまいました。 HTMLから以下のようなjsファイルを呼び出しています。 var Excel = new ActiveXObject("Excel.Application"); Excel.Visible = true; はじめ、「オートメーションサーバーはオブジェクトを作成できません」というエラーが出ていたのですが、インターネットオプションのセキュリティにて、信頼済みサイトに追加し、「スクリプトを実行しても安全だとマークされていない~」を有効設定することでこれは回避できました。 現状としては、ブラウザ(IE)左下のステータスバーにエラーが出ていて、ダブルクリックすると「'WScript' is undefined」のメッセージが出ていました。 エクセルのプロセス自体は起動しているのですが、画面上には表示されません。 何かご存知のことがあればご教授ください。 よろしくお願い致します。

みんなの回答

  • level2012
  • ベストアンサー率63% (12/19)
回答No.1

<script language="JavaScript"> function excel(){ wshshell=new ActiveXObject("WScript.Shell") wshshell.run("excel test.xls") } </script> <a href="javascript:excel()">EXCEL</a>

toshiya8
質問者

お礼

自己解決しました。 更新したjsファイルを呼ばずに、古いものを呼んでいたためのポカミスでした。 ありがとうございました。

関連するQ&A

  • JScriptでExcelの全シートにアクセスする方法

    JScriptからWSHを使って、Excelファイル内の全ワークシートにアクセスしようと試みています。たとえば、 var excel=WScript.CreateObject("Excel.Application"); excel.Visible=false; book=excel.Application.Workbooks.Open(ファイル名); for(var sheet in book.Sheets) { WScript.Echo(sheet.Name); } と書いてみましたが、forループに入りません。 VBScriptでは上記のようなコードでOKらしいのですが、JScriptではNGなのでしょうか? また、Office製品のActiveXオブジェクト(というのかどうかよくわからないのですが)を詳しく紹介しているサイトや書籍などをご存知でしたら教えてください。 MicrosoftのサイトにはTIPS程度しか載っていないので、独習できない状況です。

  • jscriptからエクセルのオートシェイプを作成しようとしていますが、

    jscriptからエクセルのオートシェイプを作成しようとしていますが、文字サイズの変更ができません。 スクリプトは以下の通りです。 <job id="ConstJob"> <reference guid="00020813-0000-0000-C000-000000000046"></reference> <script language="JavaScript"> //エクセルオブジェクト var excel = new ActiveXObject("Excel.Application"); //表示しないで編集 excel.Visible = false; // エクセル新規作成 var book = excel.Workbooks.Add(); book.Worksheets("Sheet1").Activate; // オートシェイプの作成 var shape0 = book.Worksheets("Sheet1").Shapes.AddShape(1, 5, 5, 410, 130); shape0.TextFrame.Characters().Font.Size = 9; ……(1) shape0.TextFrame.Characters().Text = "ここにテキスト"; //エクセルの保存 var fso = new ActiveXObject("Scripting.FileSystemObject"); book.SaveAs(fso.GetFolder(".").path + "\\sample.xls"); //エクセルの終了 excel.Quit(); WScript.Echo("作業完了"); </script> </job> この状態でwsfファイルを起動させると、(1)の行でエラーを起こしてしまいます。 「Font クラスの Size プロパティを設定できません。」というエラーです。 検索するとシートの保護を解除すればいい、というページが見つかったのですが、 (参考→http://okwave.jp/qa/q2497357.html) マクロでは使えても、Jscriptで書いても動作してくれません。 解決策をご存知の方は、よろしくお願いします。

  • ACCESS2013のVBAで、EXCELを操作

    ご質問させて頂きます。 ACCESS2013のVBAで、EXCELを操作するために 下記のようにしています。 ------- Dim oApp As Object Dim oWkb As Object Dim oWks As Object Dim Rw As Integer Dim SQL As String Set oApp = CreateObject("Excel.Application") oApp.Visible = True oApp.DisplayAlerts = Flase '確認メッセージの非表示 ↓↓↓オートメーションエラー Set oWkb = oApp.Workbooks.Open(CurrentProject.Path & "\ひながた.xls") ------- 上記のところでオートメーションエラーになってしまいます。 しかし私の端末ではエラーは出ません。 問題と思われるのは エラーが出る人の端末は、 EXCELが2010と2013と 2つのバージョンがインストールされていることです。 このようなことでエラーが出てしまうことはあるのでしょうか?

  • scriptについて

    scriptについて質問です。 下記のソースでエクセルをブラウザ上に表示させたいのですが、 動いてくれません、どこか違うのかを教えていただきたいです。 オートメーション サーバーはオブジェクトを作成できません。 というエラーはなんとか解決しましたが、 新たにエラーが一件発生しています、内容は下記です。 「'excel' は定義されていません。」 以上、お願いします。 「ソース」 function aaa() { var excelApp = new ActiveXObject("Excel.Application"); excel.Workbooks.Open("C:\Users\satou\Desktop\weekreport.xls"); } <input type="button" value="エクセル確認" onClick="aaa();" />

  • データベースから書き出したHTMLテーブルをエクセルのシートに取り込む

    データベースから書き出したHTMLテーブルをエクセルのシートに取り込むというプログラムをJavaScriptで書いています。 エクセルのオートシェイプをJavaScriptでエクセルのシート上に書き出したいのですが、どうも上手くいきません。 どうすれば良いか教えてください。 以下のようなソースを書いてみました。 function createShape() { var excel = new ActiveXObject("Excel.Application");// OLEオブジェクトの生成 excelVisibility = _visibility; excel.Visible = this.excelVisibility;// エクセルの可視化:真偽値 excel.DisplayAlerts = false;// 確認ダイアログを表示するかどうか:常にfalseでOK var workBook = excel.Workbooks.Add(); // ブックを設定 var workSheet = workBook.Worksheets.Add(); // シートを設定 // 長方形を書いてみる:ここでエラーになっていた workSheet.Shapes.AddShape(Microsoft.Office.Core.MsoAutoShapeType.msoShapeRectangle, 301.0, 142.0, 163.0, 82.0 ); } ※今回、VBScriptでの対応は考えておりません。全て、JavaScriptで行いたいと思います。

  • ActiveXobjectが作成できない

    こんにちは。 初めて投稿します。 現在、JavaScriptでエクセルファイルを作成するWEBプログラムを開発中です。 全くの初心者なので、ネットでどなたかが紹介していたコードを参考にできるかどうか実験中です。 自分のPCでは動くのですが、サーバーに上げると var fso = new ActiveXObject('Scripting.FileSystemObject'); のところで 「オートメーション サーバーはオブジェクトを作成できません。」 というエラーが発生します。 セキュリティの問題かと思い設定を変更したりしましたが、変化なしです。 サーバーにはMicroSoft Officeは入っていません。 でも、JavaScriptならクライアント側の環境を利用できるかなと思ったのですが… 根本的にこの考え方が間違っているんですかね? もし、何か方法があれば教えていただければうれしいです。 <script type="text/javascript"> //エクセルの起動 function withExcel(visible, func) { var excel = new ActiveXObject("Excel.Application"); excel.Visible = visible; excel.DisplayAlerts = false; try { func(excel); } finally { excel.Quit(); } } function withNewWorkbook(filename, visible, func) { withExcel(visible, function (excel) { var workbook = excel.Workbooks.Add(); try { try { func(workbook); } finally { workbook.SaveAs(filename); } } finally { workbook.Close(); } }); } function test() { var fso = new ActiveXObject('Scripting.FileSystemObject'); withNewWorkbook(fso.getAbsolutePathName("エクセルテスト.xls"), false, function (workbook) { var worksheet = workbook.Worksheets(1); worksheet.Cells(1, 1).value = "テストです!!"; } ); </script> <body> <form id="form1" runat="server"> <div> <asp:Label ID="Label1" runat="server" Text="エクセルのテストです!"></asp:Label> <input type="button" value="ボタン1" onclick="test()"/><br/> </div> </form> </body>

  • wshからexcel操作で,ChDirを使いたい

    はじめて質問をします。  monnomestと申します。 vbaのマクロを実行して、シートを作成するwsh(by jscript)を作成しました。そのシートを保存する際にchrdirで保存場所を明示したいのですが、指定の仕方が分かりません。(wshを置いておくdirectoryにしたい。) ChDirは、エクセルのmethodではないため、以下のようでは、エラーになりますし、 var objXL = WScript.CreateObject("Excel.Application"); objXL.Visible = true; with(objXL){ var tar=workbooks.Open(scriptpath+vba); try{ Run("'"+vba+"'!'"+command+"'"); }catch(e){ } tar.Close(); ChDir("xxxxxxx"); ←  とは出来ない。 } もちろん、wshを使わず、vbaをそのまま立ち上げればこんなことする必要はないのですが、 諸々の事情がありまして、wshで行えれば都合がよいのです。 objectが何なのかが分かれば解決でしょうか。 どなたかご教示いただけますでしょうか。

  • javascriptでのファイル操作に関して

    javascriptでのファイル操作に関して var fs = new ActiveXObject("Scripting.FileSystemObject"); 上記のようなコードで 「オートメーション サーバーはオブジェクトを作成できません」 というエラーが出力されます。 これは、セキュリティなどの問題による物なのでしょうか? そもそも、javascriptでファイル操作を行うと言うのは あまりよろしい物では無いのでしょうか?

  • vbsでexcelのクリアとフォームの表示をしたい

    お世話になっております。 vbsの以下の記述でexcelを開いています。 開くところまでは行くのですが、その後のsheet1のデータのクリアとUserForm1の表示がどうしてもできません。 申し訳ありませんが、どなたかおわかりの方、教えていただけないでしょうか。 宜しくお願いいたします。 Dim oApp Dim objWshShell Dim scriptPath 'Excelオブジェト作成 Set oApp = CreateObject("Excel.Application") 'WScript.Shellオブジェクト作成 Set objWshShell = CreateObject("WScript.Shell") oApp.Visible = True '不可視にする oApp.UserControl = True 'Excelファイルを開く scriptPath = WScript.ScriptFullName scriptPath = left(scriptPath,len(scriptPath)-len(WScript.ScriptName)) oApp.Workbooks.Open scriptPath & "共同資料.xlsm"

  • cscriptでは動くが、html埋め込みは×

    例えば、下記のコードは、Table.jsとかしてCscript Table.jsとするとちゃんと動きますが、<html><body><script language="jscript"> ここに記載</script></body></html>として、IE9で動かそうとしても動きません。htmlに埋め込んで動かすにはどうしたらいいのでしょうか? var excelApp = WScript.CreateObject("Excel.Application"); //var excelApp = new ActiveXOject("Excel.Application");  としても一緒でした。 var book = excelApp.Workbooks.Open("d:\\test\\Table.xls"); var sheet = book.WorkSheets("Sheet1"); // Excel内を読み込み var itemName = sheet.Cells(3, 2); var weaponType = sheet.Cells(3, 3); var power = sheet.Cells(3, 4); var deffence = sheet.Cells(3, 5); var price = sheet.Cells(3, 6); WScript.Echo(itemName, weaponType, power, deffence, price); book.Close(); excelApp.Quit(); excelApp = null;

専門家に質問してみよう