@IT会議室は、ITエンジニアに特化した質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用ください。
- PR -

ASPからWordファイルの操作

投稿者投稿内容
Hymm
会議室デビュー日: 2005/03/30
投稿数: 14
投稿日時: 2005-07-06 16:29
ご回答有難うございました。

引用:

OpSさんの書き込み (2005-07-06 16:20) より:
引用:
Wordに接続して「テンプレートのWordファイル」に内容を記入するよう操作を行いたい


でしたので、
オープンするワードファイルをサーバーに置いて、これを、
set myRange = objWordDoc.Bookmarks("bookmark1").Range
myRange.text = "<%= サーバー側の変数 %>"

とすると、ワードファイルのブックマークbookmark1にサーバー側で作成した
値が代入されます。

こういうことではないですか。



おっしゃる通りなのですが、IISサーバにはWordファイルは置いてありますが、Word自体はインストールされていないため、上記の操作が出来ていない状態です。
OpS
ベテラン
会議室デビュー日: 2003/12/09
投稿数: 50
投稿日時: 2005-07-06 16:46
<script language="VBScript">
<!--
option explicit

dim objWord,wordFile,myRange
dim objWordDoc,ret

set objWord = CreateObject("Word.Application")

wordFile = "c:\\test.doc"

document.write wordFile & "<br>"

objWord.Documents.Open(wordFile)

set objWordDoc = objWord.ActiveDocument
'objWord.Documents(wordFile).Activate

objWord.Visible = true

'ブックマークbookmark1に文字を追加
'set myRange = objWord.Documents(wordFile).Bookmarks("bookmark1").Range
set myRange = objWordDoc.Bookmarks("bookmark1").Range
myRange.text = "<%= abc %>"

'objWord.ActiveDocument.Save
'objWordDoc.Save
'objWord.Documents.Close
'objWord.Quit
'set objWord = nothing
//-->
</script>

<%
Dim abc
abc = "ABC"
%>

これをtest.aspとして保存します。
ワードファイルtest.docにはブックマークbookmark1を作成して、
サーバーのc:\\に置きます。

これでどうでしょう。

でも、ここは、.NETの会議室なのでけど。
葉瀬崎浩樹
大ベテラン
会議室デビュー日: 2005/06/28
投稿数: 115
お住まい・勤務地: 兵庫県
投稿日時: 2005-07-06 17:16
引用:

ASPは、IISサーバ上でVBScriptが実行され、その結果がクライアントに返ってくると認識していました。
ちなみに、クライアントにはWordはインストールされております。


はい、私もASPはそういうものと考えています。

引用:

これは、例えば、
ASPでWordファイルを編集するようなHtmlファイルを作成して、それをクライアントにダウンロードする形を取り、クライアント上でダウンロードされたHtmlファイルを実行することで、Wordファイルの編集を実現すると言う方法もある。
という意味なのでしょうか?


あー、そのとおりです。
提示されたソースはブラウザ側でVBSを動作させるためかと思ってコメントしてました。

勿論その方法だと、テンプレートのダウンロードに関する雑多な問題が紛れ込みますし、
「サーバ側で処理したい」という目的(手段?)を達成できませんが。。
このへんの問題について十分ご承知の上での質問のようでしたね、失礼しました。

[ メッセージ編集済み 編集者: 葉瀬崎浩樹 編集日時 2005-07-06 17:38 ]
Hymm
会議室デビュー日: 2005/03/30
投稿数: 14
投稿日時: 2005-07-06 17:29
引用:

これをtest.aspとして保存します。
ワードファイルtest.docにはブックマークbookmark1を作成して、
サーバーのc:\に置きます。

これでどうでしょう。


実行してみましたが、IISサーバにはWordをインストールしていませんので、
エラーが出てしまいました。

引用:

でも、ここは、.NETの会議室なのでけど。


「Web Client & Report 会議室」に書くべきでした。申し訳ありません。

[ メッセージ編集済み 編集者: Hymm 編集日時 2005-07-06 17:32 ]
Hymm
会議室デビュー日: 2005/03/30
投稿数: 14
投稿日時: 2005-07-06 17:45
お返事有難うございます。

引用:

葉瀬崎浩樹さんの書き込み (2005-07-06 17:16) より:
提示されたソースはブラウザ側でのVBSを想定しているのかと思ってコメントしました。

勿論その方法だと、テンプレートのダウンロードに関する雑多な問題が紛れ込みますし、
「サーバ側で処理したい」という目的(手段?)を達成できませんが。。


登録画面からボタンを押すと、画面で入力した内容がWordに反映されて、所定の場所に保存された後に表示されるようにしたいのですが、クライアント側へ、OPSさんが書き込んでくださったようなソースをダウンロードして実行するようにすればいいのでしょうが、この一連の流れ、

1.登録画面で入力して登録ボタンを押す>2.Wordにデータ差込用のHtmlファイルをサーバ側で作成する>3.クライアントからHtmlファイルをダウンロードする。(ユーザはリンクを右クリックして保存する必要あり)>4.ダウンロードされたHtmlファイルを実行する。(ユーザはHtmlファイルをダブルクリックする必要がある)

1.−4.はユーザへの負担が大きいため、IISサーバ上でOLEオートメーションなどの技術で、編集するのは中々難しいようですので、WordファイルをWord形式ではなくRtf形式にして直接テキスト読込をして必要データを挿入するようにしようと考えております。

アドバイス有難うございました。
きくちゃん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 854
お住まい・勤務地: 都内某所
投稿日時: 2005-07-06 18:13
Hymmさん、こんにちは。

以下、代替案です。

  • <meta name=ProgId content=Word.Document>タグの入った HTML ファイルを生成・出力する(2000以降?)。
  • <?mso-application progid="Word.Document"?>タグの入った XML ファイルを生成・出力する(2003以降)。

HTMLの場合はレイアウトとかが結構、崩れると思いますので、XML形式がオススメです。
葉瀬崎浩樹
大ベテラン
会議室デビュー日: 2005/06/28
投稿数: 115
お住まい・勤務地: 兵庫県
投稿日時: 2005-07-06 18:21
かなり没っぽいアイデアを思いつきましたので、参考まで。
(普段は脳内会議で却下するような内容です)

Web画面での入力にこだわらないのであれば、
マクロの入ったWord文書をダウンロードさせるという手もあります。
で、エンドユーザさんはIE上のWordを使って必要な箇所を入力すると。

突込みどころ満載な実装方法ですから、ご注意を。。
Hymm
会議室デビュー日: 2005/03/30
投稿数: 14
投稿日時: 2005-07-08 15:22
お返事有難うございます。
引用:

葉瀬崎浩樹さんの書き込み (2005-07-06 18:21) より:
>Web画面での入力にこだわらないのであれば、
>マクロの入ったWord文書をダウンロードさせるという手もあります。
>で、エンドユーザさんはIE上のWordを使って必要な箇所を入力すると。


私もこれは考えました。脳内会議では却下されなかったのですが、
現行で動いているAccess-Wordの仕組みでは、VBAを入れていないことと、
エンドユーザ様には、VBAのポップアップが表示されることが不便ということで
上司に却下されました。

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