こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

ワードファイルを上書き保存禁止にしたい

Office2010を使用して、エクセルに必要な項目を入力して、ワードのリンクを開けばワード(原紙)にエクセルからのリンクで必要な項目が入力され文書が作成されるようになっています。
作成されたワードの文書に文書Noを付けてPDF形式で保存しているのですが、たまに作成されたワードの文書を閉じる時に原紙のワードファイルに上書き保存してしまいます。
複数人、新人さんも行う作業なのでたまにやらかしてしまいます。

間違って保存した時に気付けば、元の内容に修正して問題は発生しないのですが、保存した時に気付かなければ、次の人が前回の文書の内容が一部残ったワード文書で発行してしまう可能性が非常に大きく対策に苦慮しています。

そこで思いつく方法としては、リンクを貼ってあるワードの原紙ファイルが「上書き禁止」にできないでしょうか?
当然ですが、リンクは有効に働き、PDFファイルに変換して保存する作業は可能でないと困るのですが。

他の方法でも、毎回の特別の操作が必要でない防止策あれば宜しくお願いします。

投稿日時 - 2017-03-07 09:00:27

QNo.9302132

困ってます

質問者が選んだベストアンサー

ファイル名を右クリックして「読み出し専用」にするのじゃダメなんですか?

投稿日時 - 2017-03-07 10:34:18

お礼

そうでした!!!
「読み出し専用」だと、リンクが切れてしまうと思い込んでいたのですが、試してみたら問題無さそうなので、これで検討してみます。
目からウロコでした。

ありがとうございました。

投稿日時 - 2017-03-07 15:14:39

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(6)

ANo.6

追記。

ボタンに組み込んだマクロでやっている事は

1.On error resume next文で「原紙,doc」の削除でエラーになっても無視して次の行へ進むようにする。

2.誰かが間違って上書きしたかも知れない「原紙.doc」が信頼できないので、Kill文で「原紙.doc」を削除して破棄する。

3.On Error Goto 0文でエラー処理をデフォルトに戻す。

4.読み取り専用、隠しファイルになっている「原紙の原本.doc」を、FileCopy文で「原紙.doc」にコピーする。

5.「原紙.doc」に付いている、読み取り専用、隠しファイルの属性を、SetAttr文で解除する。

6.CreateObject文で、ワードのアプリケーションを起動する。

7.起動したワードアプリケーションをVisible = Trueで可視化する。

8..documents.Open文で「原紙.doc」を開かせる。

9..Activate文で、ワードアプリケーションを最前面に表示する。

と言う処理です。

毎回「4」の処理で、マッサラの状態の「原紙の原本.doc」から「原紙.doc」にコピーしているので、間違って、原紙.docを上書き保存しても、何の影響もありません。原紙.docは「毎回、直前に破棄される」ようになっています。

投稿日時 - 2017-03-07 11:33:09

お礼

早々に非常に丁寧なご回答に感謝です。
ただ、残念ながら当方の実力では正常に動作するまでに非常に長時間かかること必須。
恐らく当方の本当の対処はご回答の内容だと思うのですが、他の方の回答からの、読み取り専用の制限をかければリンクには影響しないことが確認できましたので、とりあえずは読み取り専用にして試行してみようと思います。

上書き禁止と読み取り専用を混同していました。
お手数をお掛けしてしまいました。

投稿日時 - 2017-03-07 16:15:14

ANo.5

>そこで思いつく方法としては、リンクを貼ってあるワードの原紙ファイルが「上書き禁止」にできないでしょうか?

できません。

上書き禁止になると「エクセルからのリンクで必要な項目が入力され」が反映されなくなります。

>エクセルに必要な項目を入力して、ワードのリンクを開けば

の部分を

エクセルに必要な項目を入力して、ワードを開くボタンを押せば

に変更して下さい。

そして、そのボタンのイベントプロシージャに、以下のVBAマクロを組み込んでください。

Private Sub CommandButton1_Click()
On Error Resume Next
Kill "C:\Users\ユーザー名\Documents\原紙.doc"
On Error GoTo 0
FileCopy "C:\Users\ユーザー名\Documents\原紙の原本.doc", "C:\Users\ユーザー名\Documents\原紙.doc"
SetAttr "C:\Users\ユーザー名\Documents\原紙.doc", vbArchive
With CreateObject("word.application")
.Visible = True
.documents.Open "C:\Users\ユーザー名\Documents\原紙.doc"
.Activate
End With
End Sub

上記マクロでは「原紙の原本.doc」も「原紙.doc」も、マイドキュメントに保存してあると仮定しています。

ファイルの置き場所が違う場合は、動作環境に合わせて書き換えて下さい。

なお「原紙の原本.doc」は「読み取り専用」と「隠しファイル」に設定しておいて下さい。

蛇足ですが「原紙.doc」を修正しても結果は反映されません。ワード文書の内容を変更する場合は「原紙の原本.doc」の方を修正して下さい。

投稿日時 - 2017-03-07 11:16:45

ANo.4

???

書き込み禁止、読み込みのみの設定でパスワードをかければ良いだけに思うんだけど、なんか複雑なことをしなければいけない事情があるのでしょうか?

投稿日時 - 2017-03-07 11:03:46

お礼

ありがとございます。
書込み禁止と読み込み専用を混同していたようで、読み取り専用にすると、エクセルからのリンクが反映されなくなる(内容の書き換え)と思い込んでしまっていました。

お騒がせ致しました。

投稿日時 - 2017-03-07 15:20:36

ANo.2

ワードファイルをテンプレートにすると良いです。ワードを保存するときの拡張子は、docxですが、これをプルダウンでテンプレートdotxを選択します。保存先は、テンプレートのデフォルトのフォルダが開きますが、これをデスクトップにしておくと後で更新したりすることが楽です。テンプレートにしたワードを開くと、拡張子がdocxのファイルが生まれます。なので、これを上書きしてもファイルがひとつ増えるだけで、元のテンプレートは上書きされません。テンプレートをを上書きするためには、プルダウンでテンプレートを選択してから上書きすることが必要ですので、元ファイルを壊さないための予防になります。

投稿日時 - 2017-03-07 10:03:39

お礼

早々のご回答ありがとうございます。
なるほどですね。
テンプレートはなじみがないのですが、試してみたいと思います。

投稿日時 - 2017-03-07 15:11:57

ANo.1

ネットワーク共有を使って、質問者様しか書き込めない場所(他者は参照のみ)を作り、文書に利用するファイルはそこに配置するのが良いと思います。(以下、ここに置くファイルをマスターファイルと呼びます)

新人の方がファイルを修正する場合、

 (1) 必ずマスターファイルを取得
 (2) 新人の方が修正を実施
 (3) 質問者様に提出
 (4) 質問者様が修正内容を確認の上、問題がなければマスターファイルを更新

というフローにすればよいと思います。
手間ですが、いつ・どの部分を書き換えられるのか分からないという以上、
ちゃんと管理しようとすれば致し方ないことかと。。。
文書化されるようなファイルならなおさらです。

ここまで手間をかけられないということでしたら、
PDFを作成するタイミングで、修正箇所を差分チェックして
不適切な修正が行われていないか確認すればよいでしょう。

投稿日時 - 2017-03-07 09:55:43

補足

質問の仕方が悪く少しご回答の内容が違っています。
ワードの文書は作成するのではなく、エクセルからのリンクで自動的に作成されるのでワードでのチェックは不要になっています。(内容チェックはエクセルのシート上で齟齬の無いことが確認されるようになっています)

つまり自動で作成されたワードをPDFで保存したら、原紙(マスターファイル)は保存しないで終了させてほしいのですが、癖で上書きしてしまう事態がたまに発生しています。

投稿日時 - 2017-03-07 12:49:28

あなたにオススメの質問