- PR -

ASPでEXCELを表示し、書き込みを行いたい(読み取り専用をはずしたい)

投稿者投稿内容
のの
ベテラン
会議室デビュー日: 2004/11/10
投稿数: 88
投稿日時: 2005-12-27 17:31

いつも、お世話になっております

行いたいこととしては…
 @サーバー上の既存のExcelファイルを開く
 A開いたExcelファイルに、WEB画面上から
  直接書きこみを行う。
 Bそれを保存する。
といったことをしたいのですが。

下記ソースではできませんでした。
WorkBooks.Openの第3引数に、falseを設定すれば
できると聞いたのですが、読み取り専用のままで
開いてしまいます。

=================================================================
Set objFSO = CreateObject("Scripting.FileSystemObject")
set ObjExcel = createobject("Excel.Application")
ObjExcel.Visible = True
strPath = ("テスト.xls")
set ObjWK = ObjExcel.WorkBooks.Open(strPath,,True)
set xlsheet = ObjWK.sheets("Sheet1")
================================================================

ご教授お願いします。

※Server2000です。

じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-12-27 18:02
引用:

ののさんの書き込み (2005-12-27 17:31) より:

WorkBooks.Openの第3引数に、falseを設定すれば
できると聞いたのですが、読み取り専用のままで開いてしまいます。


読み取り専用で開くのと、読み取り専用を外すのでは全然違いますよ。
FileSystemObject で読み取り専用属性を外してから開きましょう。
または、別名で保存すれば関係ないですね。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
のの
ベテラン
会議室デビュー日: 2004/11/10
投稿数: 88
投稿日時: 2005-12-27 18:12

 返信ありがとうございます。

 サーバー上にあるEXCELファイルは読み取り専用ノチェックは
 はずしてあります。
 その上で、WorkBooks.Open〜で開くと、読み取り専用で開かれて
 しまいます。
 なので正確には、”書き込み可能で開きたい”です。

 FileSystemObject で読み取り専用属性を外すには、
 どういった記述なのでしょうか?

 宜しくお願い致します。

なおこ(・∀・)
大ベテラン
会議室デビュー日: 2004/04/08
投稿数: 174
お住まい・勤務地: 東京都
投稿日時: 2005-12-27 19:09
お世話になります。

引用:

Set objFSO = CreateObject("Scripting.FileSystemObject")
set ObjExcel = createobject("Excel.Application")
ObjExcel.Visible = True
strPath = ("テスト.xls")
set ObjWK = ObjExcel.WorkBooks.Open(strPath,,True)
set xlsheet = ObjWK.sheets("Sheet1")


↓こちらの、Openメソッド に関する記述で引数の一覧がありますので
参考になれば。
http://www.asahi-net.or.jp/~zn3y-ngi/YNxv914.html

それとも、
IIS の 仮想ディレクトリの設定が影響してるのかなぁ...

# FileSystemObject を使っていないように見えるのは気のせいでしょうか

[ メッセージ編集済み 編集者: なおこ(・∀・) 編集日時 2005-12-27 19:47 ]
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-12-27 20:01
引用:

ののさんの書き込み (2005-12-27 18:12) より:

サーバー上にあるEXCELファイルは読み取り専用ノチェックははずしてあります。
その上で、WorkBooks.Open〜で開くと、読み取り専用で開かれてしまいます。


何かのプロセスが掴んでるんじゃないですか?
一度、IIS ごと再起動して頂けませんか?

# Open メソッドの引数は無関係っぽいですね。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
のの
ベテラン
会議室デビュー日: 2004/11/10
投稿数: 88
投稿日時: 2005-12-28 12:37

 お世話になります。

色々とご教授ありがとうございます。

問題解決致しました。

色々と調べた結果、下記の行で
 set ObjWK = ObjExcel.WorkBooks.Open(strPath,,false)
第3引数をfalseとすれば、書き込み可能でOpenする
という情報が多かったのですが…
 set ObjWK = ObjExcel.WorkBooks.Open(strPath,false,)
のように、第2引数をfalseとすることで、目的の実現に
至りました。

色々とご面倒をお掛けいたしました。

また何かありましたら、宜しくお願い致します。

じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-12-28 13:31
引用:

ののさんの書き込み (2005-12-28 12:37) より:

問題解決致しました。
色々と調べた結果、下記の行で
 set ObjWK = ObjExcel.WorkBooks.Open(strPath,,false)
第3引数をfalseとすれば、書き込み可能でOpenする
という情報が多かったのですが…
 set ObjWK = ObjExcel.WorkBooks.Open(strPath,false,)
のように、第2引数をfalseとすることで、目的の実現に至りました。


違うと思います。
それなら、ObjExcel.WorkBooks.Open(strPath) だけで十分なのではないでしょうか?

[ シグネチャの削除 ]

[ メッセージ編集済み 編集者: じゃんぬねっと 編集日時 2006-09-19 14:42 ]
のの
ベテラン
会議室デビュー日: 2004/11/10
投稿数: 88
投稿日時: 2005-12-28 15:24

 ホント不思議な現象です。

 なぜかはわかりませんが、この対応をしないと
 できませんでした。

 ちなみに、
  ObjExcel.WorkBooks.Open(strPath)
 だけでは、出来ませんでした…。


スキルアップ/キャリアアップ(JOB@IT)