C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[1]: Word操作でSaveAsする時ダイアログが出ることがある


(過去ログ 123 を表示中)

[トピック内 2 記事 (1 - 2 表示)]  << 0 >>

■73404 / inTopicNo.1)  Word操作でSaveAsする時ダイアログが出ることがある
  
□投稿者/ ケンシロウ (1回)-(2014/09/22(Mon) 12:41:25)

分類:[VB.NET/VB2005 以降] 

こんにちは。
VB2008を使い、WordのファイルをHTML変換するようなツールを作成しています。
ただ、一部の利用者より、この処理を行うと「名前をつけて保存」のダイアログが表示される、
という連絡がありました。
恐らく、以下コードの「oWordDoc.SaveAs」のところで勝手にダイアログが表示されている
のではないかと思いますが、こちらの環境(Windows 7・Word 2007/2010/2013)では全く再現できません。

※WordのOpenメソッドを使わず、空のWordブックに対してInsertFileを行っているのは
 何か理由があったようですが、前任者に聞いた内容を失念しました。

Const wdFormatHTML As Integer = 8
Const wdWindowStateNormal As Integer = 0
Dim oWord As Object = Nothing
Dim oSel As Object = Nothing
Dim oWordDocs As Object = Nothing
Dim oWordDoc As Object = Nothing
Dim blnWordClosed As Boolean = False

'≪途中略≫

Try
    Try
        oWord = GetObject(, "Word.Application")
        oWord.WindowState = wdWindowStateNormal
    Catch ex As Exception
        oWord = CreateObject("Word.Application")
        fWordClosed = True
    End Try

    oWord.DisplayAlerts = False
    oWord.Visible = True

    oWordDocs = oWord.Documents
    oWordDoc = oWordDocs.Add
    oSel = oWord.Selection
    oSel.InsertFile(変換したいWordファイル名)

    '≪途中略≫

    oWordDoc.SaveAs(FileName:=保存したいHTMLファイル名, FileFormat:=wdFormatHTML)

Finally
    If oWord IsNot Nothing Then
        MRComObject(oSel)
        If oWordDoc IsNot Nothing Then
            Try
                oWordDoc.Close(False)

            Catch ex As Exception
                oWord.Visible = True
                fWordClosed = True
            End Try
        End If

        MRComObject(oWordDoc)
        MRComObject(oWordDocs)
        oWord.DisplayAlerts = True
        If fWordClosed Then
            oWord.Quit()
        Else
            oWord.Visible = True
        End If
        MRComObject(oWord)
    End If
End Try

'MRComObjectは以下の通り
Private Sub MRComObject(Of T As Class)(ByRef objCom As T)
    If objCom Is Nothing Then
        Return
    End If
    Try
        If Marshal.IsComObject(objCom) Then
            Marshal.FinalReleaseComObject(objCom)
        End If
    Finally
        objCom = Nothing
    End Try
End Sub


そのユーザーの話によると、数ヶ月前に何かのWindows Updateを当てたところ、
この現象が発生したかも知れないというのですが、このような話は聞いたことがありますか?
ちなみに、そのユーザーの環境はWindows 7・Word 2010です。
宜しくお願いします。

引用返信 編集キー/
■73418 / inTopicNo.2)  Re[1]: Word操作でSaveAsする時ダイアログが出ることがある
□投稿者/ ケンシロウ (2回)-(2014/09/24(Wed) 15:05:49)
自己レスです。
原因が判明いたしました。

今話題になっています、データ持ち出し等の問題の対策のために、
その利用者の環境ではファイルの入出力を監視するソフトを導入しているとのことで、
どうやらこれが今回の問題に影響を与えているようだとの連絡がありました。

利用者側でそのソフトのサポートセンターに確認をするとのことでした。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -