質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

89.71%

VB.NETからのEXCEL出力でエラー

解決済

回答 3

投稿

  • 評価
  • クリップ 0
  • VIEW 8,546

jawa

score 2966

VB.net(VS2005)から帳票のEXCEL出力を行っています。
様々な環境で使用するため、バージョン依存しないよう遅延バインディングで作成しています。

環境1(開発環境)
 WindowsXP(Windows7のXPモード) + office2003
環境2
 Windows7 + office2010
環境3
 Windows7 + office2013

上記環境で動作確認を行ったところ、1・2では問題なく動作したのですが、
環境3でのみ「saveメソッドが失敗しました」のエラーが発生してしまいます。

原因・対応方法等、情報頂ければ幸いです。
よろしくお願いします。

    Dim File1 As New Object
    Dim File1_book As New Object
    Dim File1_sheet As New Object
    
    'これ以前の処理でテンプレート.xlsファイルから出力.xlsファイルをファイルコピーで
    '作成しているため、str_Create_File_Path & str_Create_File_Nameは必ず存在します。
    
    File1 = CreateObject("Excel.Application")
    File1.Workbooks.Open(str_Create_File_Path & str_Create_File_Name)
    
    File1_book = File1.Workbooks(str_Create_File_Name)
    File1_sheet = File1_book.Sheets(1)
    
    '(ここから)
    ' ・・・省略・・・
    '(ここまでシート編集)
    
    File1.Visible = False        'excel非表示
    File1.DisplayAlerts = False
    File1.Save()                 '★saveはここだけなのでここでエラー発生しているようです。
    File1.Workbooks.Close()
    File1.Quit()
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 3

check解決した方法

0

'File1.Save()
File1_book.Save()
上記修正により無事上書き保存が可能となりました。

Excel2010まではFile1.Save()で問題なく保存できていたのですが、仕様変更でもあったのでしょうか。。

今回は上記対応でクローズとさせていただきます。
情報くださいました方々、ありがとうございましたm(__)m

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

明確な回答ではないのですが、、、ひょっとして、保存するときのファイルフォーマットの問題がありますかね?

デフォルトの拡張子って 2003 では xls でしたが、2010 や 2013 は xlsx ですよね

save メソッドで保存しようとしたときに、開いているファイルの拡張子は xls (ですよね?)なので、そのあたりの不整合がありそうな

ただ、そうだとしたら環境2がうまくいくのと一致しないのですが・・・

saveas を使ってファイル名を指定した保存に書き換えてみるのはいかがでしょうか

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/08/07 13:37

    SaveAsを試すため引数確認をしている際、別手段にて解決できてしまいましたので今回の質問はクローズとさせていただきます。
    情報のご提供ありがとうございました。

    キャンセル

0

環境が無いので未確認ですが、ひょっとして保存前の互換性チェックでコケてないでしょうか?
保存結果は保証出来ませんが・・・下記を参考に(ダメ元で)互換性チェックを一時的に無効にしてから保存してみては?
 参考:https://msdn.microsoft.com/ja-jp/library/office/Gg132972(v=office.14).aspx

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/08/07 13:33

    情報ありがとうございました。
    参考URLをもとに互換性チェックをはずしてみましたが、現象は変わらずでした。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 89.71%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる