[[20160115093704]] 『コンバーターでファイルが保存されませんでした』(marsan) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『コンバーターでファイルが保存されませんでした』(marsan)

マクロ付きのファイルを開く際にエラーメッセージが出て困っています。

ファイルの起動時にマクロが実行されるようになっており、
[ファイル名].xlsmで作成しています。

メッセージの内容は以下の通りです。

「ファイルを変換しています...」

と出ており、直後に

「'[ファイル名].xlsm'が見つかりません。
 ファイル名およびファイルの保存場所が正しいかどうかを確認してください。
 最近使用したファイルの一覧からファイルを開こうとしている場合は、
 そのファイル名が変更されていないこと、移動または削除されていないこと
 を確認してください。」

となります。メッセージを閉じると、

「コンバータでファイルが保存されませんでした。」

で、結局ファイルは開けません。

同じWin7、Excel2007の別PCでも同様の現象ですが、
Win8、Excel2007では問題なく動作します。

Excel2007で.xlsmのファイルを開くのに、
変換(コンバータ)が動作する理由がわかりません。

< 使用 Excel:Excel2007、使用 OS:Windows7 >


シート内に古いPowerPoint等、他の製品を貼り付けているとかありませんか?
この場合は、「Microsoft Office 互換機能パック」のインストールで対応できるようです。
(???) 2016/01/15(金) 10:33

 とりあえず、そのマクロブックの 標準モジュールの Auto_Open ないしは ThisWorkbookモジュールの
 Workbook_Open に書かれたコードを、そのままコピペでアップされてはいかがでしょう。

 何か発見があるかもしれませんので。

 なお、「コンバータでファイルが保存されませんでした」で検索すると、同様の現象が報告されていますので
 それらも、参考になるのではないでしょうか。

(β) 2016/01/15(金) 10:35


???様
情報ありがとうございます。
他の製品の貼り付けはありませんが、互換機能パックも試してみます。

β様

ソースは以下の通りです。

'////////////////////////////////////////
' 起動時自動実行
'////////////////////////////////////////
Sub Auto_open()

'画面の更新表示を停止

    Application.ScreenUpdating = False

'CSVコピー

    Application.Run "グラフ.xlsm!Macro01取込"

'グラフを画像として保存

    Dim myRess As Variant
'(グラフ )
    If ActiveSheet.Range("C1") = "0" Or ActiveSheet.Range("C1") = "1" Then
        myRess = Worksheets("グラフ").ChartObjects("グラフ").Chart.Export( _
            ThisWorkbook.Path & "\グラフ.PNG", "PNG", False)
        End If

'Excelの終了

    Application.DisplayAlerts = False
    Application.Quit

End Sub

'////////////////////////////////////////
' CSV取込み
'////////////////////////////////////////
Sub Macro01取込()

'CSV名称

    Dim CsvName     As String
    Dim SheetsName  As String

    SheetsName = "グラフ"
    CsvName = SheetsName & ".CSV"

'CSVファイルオープン

    Workbooks.Open Filename:=ThisWorkbook.Path & "\" & CsvName

'コピー

    Windows("グラフ.xlsm").Activate

    With ActiveSheet
        .Range("A1:R22").Value = Workbooks(CsvName).Worksheets(SheetsName).Range("A1:R22").Value
    End With

'CSVファイルクローズ

    Workbooks(CsvName).Close

End Sub

以上です。
(marsan) 2016/01/15(金) 14:14


 おそらくは、???さん指摘の(エラーメッセージで検索して出てくるページにも示唆されていますけど)互換パックがらみの問題だと想像します。

 コード、気になるところはありますが、まぁ、結果オーラいでしょうから。

 でも気になりますね。
 ブックを開いた時に、どのシートがアクティブになっているかは、実に不確かなことですよね?
 前回保存する際にどのシートをアクティブにしていたかに依存しますから。
 ですから、ActiveSheet として参照するのは、きわめて、あぶなっかしいです。
 ちゃんとしたシート名を明示して参照すべきだと思いますよ。

 ところで、このマクロブックは グラフ.xlsm とは別物なのですか?

(β) 2016/01/15(金) 14:28


特に貼っているものが無いのですね。VBA編集画面の「ツール」−「参照設定」も調べてみてください。
参照不可のライブラリが無いか。不可なものがあれば、チェックを外してみる。
処理に必要なものだった場合、正しく動作しない可能性がありますが、使っていなければ外して問題ないです。
(???) 2016/01/15(金) 14:32

β版
情報ありがとうございます。
シートのアクティブの件は注意しておきます。

「ところで、このマクロブックは グラフ.xlsm とは別物なのですか?」
すみません、知識不足でよくわからないのですが、
.xlsmのファイルに設定しているマクロです。
別物でなく一緒ってことですかね。

???様
ありがとうございます。
参照しているライブラリでチェックが外せるものは外してみましたが、
現象変わらずです。すみません。
(marsan) 2016/01/15(金) 15:17


先ほどの書き込みで誤字がありました。
β版→β様
大変失礼しました。
(marsan) 2016/01/15(金) 15:30

 もし、マクロブックの名前が グラフ.xlsm つまり、開こうとしているマクロブックであれば

 Windows("グラフ.xlsm").Activate

 これは

 ThisWorkbook.Activate 

 のほうが、わかりやすいですね。(というか安全)
 将来、マクロブックの名前が変更になるかもしれませんよね、可能性としては。
 コード内でハードコードにしておくと、コード変更も必要になりますので。

 さらにいえば、Activate する必要は(少なくとも コード処理上は)不要で

 ThosWOrkbook.Sheets("○○○").Range("A1:R22").Value = Workbooks(CsvName).Worksheets(SheetsName).Range("A1:R22").Value

 この1行でいいというか、こうすべきですねぇ。

(β) 2016/01/15(金) 17:28


参照設定にもエラー無しですか。
あとは、お使いのOfficeは32bit版か64bit版か、とか。32bit版または古い版で元ブックを作成し、
現在は64bit版で開こうとしたら…、とかありませんか?

WINDOWSが64bit版でも、Officeは32bit版を使う方が安定します。
(???) 2016/01/15(金) 17:30


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.