お世話になります。
Windows Vista Business 上のIISで、Excelファイルを読み込む処理を書いたのですが、Excelファイルを読み込む処理でエラーになってしまいます。
下記がソースです。
<%
On Error Resume Next
fileName = "C:\test.xls"
Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = False
'ここでエラーが発生する
Set objWorkbook = objExcel.Workbooks.Open (fileName)
'この処理で発生したエラーの内容を出力する
Response.Write Err.Description & "<br />"
Err.Clear
objExcel.Quit
%>
これをWebサーバに保存し、実行すると、ブラウザ上で下記が出力されます(「Response.Write Err.Description & "<br />"」で出力される内容です)。
------------------------------------------------------------
ファイル 'C:\test.xls' にアクセスできません。次のいずれかの理由が考えられます。 ? ファイル名またはパスが存在しません。 ? ファイルが他のプログラムによって使用されています。 ? 保存しようとしているブックと同じ名前のブックが現在開かれています。
------------------------------------------------------------
もちろん、ファイルは存在しますし、Excelが起動していない状態でもエラーとなってしまいます。
Windows XPのIISでは、Excelの読み込みができていました。
ここで質問する前にいろいろ調べたのですが、Webサーバ上でExcelを起動すること(WordやExcelをcomオートメーションで起動すること)が、非推奨だったようですね。
そこで、知りたいことは下記の通りです。
1.VistaのIIS上でExcelを起動する術は、もはやないのか(ExcelをWebサーバ上で動作させる非推奨なプログラムを動かせなくした、など)。
2.読み込ませるExcelのファイルに適切な権限を与えればよいのか。
3.IIS7で作成したWebサイトの設定(アプリケーションプールや物理パス資格情報など)を適切な値にすればよいのか。
以上、よろしくお願い致します。
No.1ベストアンサー
- 回答日時:
セキュリティ関連で C:\Test.xlsに IISのアカウントがアクセスできないのでは?
その ASPページと同じフォルダーに Test.xls を置いておいて
fileName = Server.MapPath( "./Test.xls" )
として与えてやったほうがいいのかも ・・・
この回答への補足
fileName = Server.MapPath("./test.xls")として試しましたが、同じ結果でした。
IISのアカウントについてですが、IIS7で「物理パス資格情報」の設定項目について、管理者権限を持つアカウントで試しています。それでもExcelファイルを開けませんでした。
ファイルの存在を確認するために、下記プログラムを実行しました。
<%
fileName = Server.MapPath("./test.xls")
Set objFso = Server.CreateObject("Scripting.FileSystemObject")
If objFso.FileExists(fileName) Then
Response.Write "ファイルが存在します<br />"
Else
Response.Write "ファイルが存在しません<br />"
End If
Set objFso = Nothing
%>
すると、ブラウザ上に「ファイルが存在します」と表示されました。
また、プログラムでファイルを開けることを確認するために、下記プログラムを実行しました。
<%
fileName = Server.MapPath("./test.xls")
Set objFile = objFso.OpenTextFile(fileName)
If Err.Number = 0 Then
Response.Write "ファイルオープンに成功しました<br />"
Else
Response.Write "ファイルオープンに失敗しました<br />"
End If
objFile.Close
Set objFile = Nothing
%>
すると、ブラウザ上に「ファイルオープンに成功しました」と表示されました。
ご回答ありがとうございます。
Excelのファイルを開き、そのファイルにデータを書き込みたいのですが、VistaのIISで動くASPでできないようであれば、諦めようと考えています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- Excel(エクセル) Excelを開くとエラーが出る 2 2022/10/03 16:13
- その他(プログラミング・Web制作) pythonでクラスで複数のメソッドを利用する方法 2 2022/04/15 04:17
- Visual Basic(VBA) Excel-VBAでのファイルの開き方 4 2023/02/14 11:01
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/06/04 09:39
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/03/28 14:52
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/03/27 13:25
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- Excel(エクセル) Excel起動時にエラーダイアログが表示される 3 2022/07/28 19:52
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
html上で、バッチやexeファイル...
-
MS onedriveの中にあるaccessプ...
-
量子化学計算ソフト GAMESS の...
-
Access VBAよりシート名を取得...
-
LabVIEWでEXCELファイルを操作...
-
VBA Application visibleの...
-
別のAccessファイルのフォーム...
-
Eclipseで、プロジェクト名のと...
-
Eclipseのアンインストールの仕方
-
正しいURL指定しているにもかか...
-
vs codeはオフラインでも使用で...
-
Javascriptの値をJava(JSP)へ渡...
-
Eclipse(JAVA)のデバッグで他...
-
コミット前の更新データをチェ...
-
Tera Term ネットワークに到達...
-
split関数で区切り文字がない場合
-
JAVAでアルファベットを数...
-
Javaで年月の取得(YYYYMM形式で)
-
シンボルが見つかりませんとい...
-
「ワークスペースをビルド中」...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
html上で、バッチやexeファイル...
-
jspのエラーが修正できません。
-
VBA Application visibleの...
-
Access VBAよりシート名を取得...
-
別のAccessファイルのフォーム...
-
量子化学計算ソフト GAMESS の...
-
*.asp の拡張子名がついたht...
-
VBAで作成したマクロをデスクト...
-
system.mdwを見つけることが出...
-
HTMLファイルからexeファイルを...
-
RPA(PowerAutomate)の実装について
-
LabVIEWでEXCELファイルを操作...
-
エラー この変数は宣言されて...
-
このファイルを開く方法で困っ...
-
Session_OnStartを見てくれなか...
-
VBでエクセルをOPEN
-
VS内で問題ないexeファイルが、...
-
EXE間で同期をとりながらデータ...
-
AccessのMDBファイルを自動で最...
-
GUIアプリをコマンドラインで使...
おすすめ情報