2

適切なブックマークを使用してMSWord文書を作成するのに役立つVBAコードを動的に挿入するアプリケーションがあります。VBAコードは、ドキュメント自体と一緒に保存する必要はありません。

ドキュメントを保存するときに、アプリケーションのエンドユーザーを混乱させる次の警告(残念ながら、まだ画像を投稿できません)がポップアップ表示されます。DocumentBeforeSaveイベント内でこれを無効にする方法はありますか?

****

以下はマクロのないドキュメントに保存できません。VBAプロジェクトこれらの機能を備えたファイルを保存するには、[いいえ]をクリックして[名前を付けて保存]ダイアログに戻り、[ファイルの種類]ドロップダウンでマクロが有効なファイルの種類を選択します。マクロフリーのドキュメントとして保存を続けますか?ボタン:[はい][いいえ][ヘルプ]

****

この警告が表示されないようにするには、ドキュメントのSaveFormatを古い形式に変更することをお勧めします。ただし、この変更が今後のドキュメントの動作に影響するかどうか、およびDocumentBeforeSaveイベント内でこのプロパティを変更できるかどうか(プロパティはREADONLYプロパティです)はわかりません。

このトピックに関するヘルプを事前に感謝します。

次のコードは単語を開きます(c:\ work \ test.docxが存在すると仮定します。これは、単なる空白の単語docである可能性があります)。単語docの[保存]ボタンを押すと、警告メッセージが表示されます。ところで、私はOffice2010を使用しています。

<TestMethod()>
Public Sub testWord()
    Dim wApp As New Word.Application()
    Dim myDoc As Word.Document
    Dim DataCodeModule As Object = Nothing

    myDoc = wApp.Documents.Open("C:\Work\test.docx")

    DataCodeModule = myDoc.VBProject.VBComponents(0).CodeModule
    With DataCodeModule
        .InsertLines(1, "Option Explicit")
        .InsertLines(2, "Sub TestCode()")
        .InsertLines(3, "Selection.InsertAfter ""test""")
        .InsertLines(4, "End Sub")
    End With

    wApp.Visible = True
    myDoc.Activate()
End Sub

そして、DocumentBeforeSaveが接続されると、次のコードで警告が無効になることを期待していました。たぶん、ドキュメントを開いたらすぐにDisplayAlertsを設定する必要がありますか?

Public Sub App_DocumentBeforeSave(ByVal doc As Object, ByRef saveAsUI As Boolean, ByRef cancel As Boolean) Handles _officeHelper.DocumentBeforeSave
            Dim WordApp As Object = this.WordApp()
            'WordApp.DisplayAlerts = False
            WordApp.DisplayAlerts = 0
End Sub
4

2 に答える 2

4

このような?

Application.DisplayAlerts = wdAlertsNone
'~~> Your Save Code
Application.DisplayAlerts = wdAlertsAll

ファローアップ

あなたはvb.netでそれをやっています。現在、VB.netにアクセスできませんが、以下の例で正しい方向に進むことができます。

Wordを開いてモジュールを挿入し、このコードを貼り付けます

Option Explicit

Dim MyClass As New Class1

Sub Sample()
    Set MyClass.App = Word.Application
End Sub

次に、クラスモジュールを挿入して、このコードを貼り付けます

Public WithEvents App As Word.Application

Private Sub App_DocumentBeforeSave(ByVal Doc As Document, _
SaveAsUI As Boolean, Cancel As Boolean)

    Application.DisplayAlerts = wdAlertsNone
    ActiveDocument.Save
    Application.DisplayAlerts = wdAlertsAll

End Sub

保存ボタンを押すと、アラートが表示されなくなることがわかります。:)

あなたが必要に応じてそれを適応させることができることを願っています:)

于 2012-05-30T17:32:29.403 に答える
0

私は単にこのコードを実行しました。保存するように求められ、メールに添付するのにも役立ちます。それは私のために働いた。してみてください。シートの上にコマンドボタンを付けました。ありがとう

Private Sub CommandButton1_Click()
Dim whatfolder, whatfile As String
whatfolder = InputBox("Type folder name.. Don't type which drive")
whatfile = InputBox("Type file name you want to give")
ChangeFileOpenDirectory "C:\" & whatfolder
Application.DisplayAlerts = wdAlertsNone
ActiveDocument.SaveAs FileName:=whatfile & ".docx", FileFormat:=wdFormatXMLDocument, LockComments:=False, Password:="", AddToRecentFiles:=True, WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:=False, SaveNativePictureFormat:=False, SaveFormsData:=False, SaveAsAOCELetter:=False
Application.DisplayAlerts = wdAlertsNone
ActiveDocument.SendMail
End Sub
于 2014-06-17T05:07:59.927 に答える