Word 2010ファイルで名前を付けて保存を無効にしますが、保存は許可します。つまり、ユーザーは既存のファイルを更新できるが、コピーは作成できないようにしたい。これは本当に回避策を知っている人には不可能だが、一般ユーザーにとってはこれをExcelでうまくやったが、VBAという言葉にはまったく新しいものだ。名前を付けて保存は無効にしますが、Word 2010に保存しないでください
私が意図したとおりにすべての作品ブランドの新しい文書に次の行を追加します。
Sub FileSaveAs()
MsgBox "Copies of this file cannot be created. Please save changes in the original document." & _
, , "Copy Cannot be Created"
End Sub
マイドキュメントは、さまざまなコマンドボタンの他のマクロを持っていますが、それらのどれも元の名前の下に(文書の保存伴わないかのように保存)。開いているマクロもありますが、それはブックマークに行く1行です。この文書で「別名で保存」しようとすると、メッセージボックスが意図どおりに取得されます。事が奇妙になっても「保存」しようとすると、対話として保存されます(問題1)。同じ名前か他の名前のどちらかで保存しようとするかどうかは、ダイアログが保存されず、対話ボックスが再び自動的に開き、キャンセル(問題2)するまで無限ループを作ります。私は断続的に "ディスクがいっぱいです"という警告ポップアップを表示しようとするとポップアップ表示を消すことができますが、ファイルが開かれている間はおそらく数分後に表示されます(おそらくオートセーブに関係しますか?)
マクロは動作するテストファイルでは、私はこの奇妙な振る舞いが私のコードのどこかにあるはずだと仮定しましたが、他のマクロを使った私の文書は、上記のコードとして保存しない限り正常に保存されるので、今私は完全に混乱します。私は長い時間がかかるコードの残りの部分を置く前に、上記の理由から影響のあるものは考えていないと思います。
1.私の他のコマンドボタンマクロ以外の場所はありますか?この現象を引き起こしているのでしょうか?
2.人々が私の究極の目標を達成するために推奨する良い方法はありますか?
アドバイスをいただきありがとうございます。
Variatus、ありがとうございました。あなたのコードは既存のファイルでは機能しませんでしたが、ドキュメントを再作成したとき(ドキュメント内のすべてのコンテンツとコードを新しいドキュメントに貼り付ける)、作業がはるかに良くなりました。元のファイルで変更されたものが新しいファイルのある時点で再び変更される可能性があるのは少し不安ですが、それは別の問題です)。 – Patrick
私はかなり問題を引き起こしたWdApp変数の初期化を確信しています。 F5キーを押すと、変数を初期化するDocument_Openプロシージャをいつでも実行できます。 ThisDocumentシートに 'Debug.Print WdApp Is Nothing'と書いてWdAppがアクティブであることをテストすることもできます。これをF5で実行します。変数が初期化されると、イミディエイトウィンドウにFalseが出力されます。一度それがあると、すべての文書に対してそのイベントが発生します。 – Variatus