電子書籍の厳選無料作品が豊富!

こんにちは、
下記の文で、ActiveWorkbook.SaveAs の部分で一度エラーが
起こってしまい処理が中断してしまうのですが、
そこからF5で、再処理を実行したら正常に保存されるという現象が
起こってしまいます。
何か対処方法はないでしょうか。


Application.Calculation = xlCalculationAutomatic '自動計算
ActiveWorkbook.Protect Password:=M_PASSBOOK 'ブック保護
'ファイル保存
ActiveWorkbook.SaveAs Filename:=M_OUTFILENAME & "\(課)" & Mid(M_SECTDY(Ia, 2), 1, Len(M_SECTDY(Ia, 2)) - 3) & "_" & M_SECTDY(Ia, 1) & ".xls"
ActiveWorkbook.Close

A 回答 (1件)

こんばんは。



正確に、全体が書かれていないので、エラーが起こる原因は分かりませんが、保存前のファイル名の取り方としては、複雑だと思います。悪いわけではないのですが、今回のような凝った造りですと、どこかでエラーが起こりやすくなりますし、発見しにくいです。

M_SECTDY(Ia, 2) が、一体何なのか分かりませんが、もし、セルを参照しているなら、
一旦変数を取って、

Application.Calculation = xlCalculationAutomatic
の後に、

Fname = M_OUTFILENAME & "\(課)" & Mid(M_SECTDY(Ia, 2), 1, Len(M_SECTDY(Ia, 2)) - 3) & "_" & M_SECTDY(Ia, 1) & ".xls" 
'本来は、ファイル名にふさわしいかチェックが必要です。
'特に、「 "\(課)"」の部分は、もしも、ディレクトリの区切りでなかったら、エラーになります。

取得して、それから、

ActiveWorkbook.Protect Password:=M_PASSBOOK 'ブック保護

ActiveWorkbook.SaveAs Filename:=FName  'ここは、単純に!

としたらどうでしょうか。

この回答への補足

こんにちは、
エラー内容は
「SaveAsメゾットは失敗しました。 _WORKBOOKオブジェクト」
と出まして、

Fname=C:\作業\開発\20080829\準備\課\G1.xls
の状態で行ったのですが、
やはりエラーがでてしまいました。

補足日時:2008/08/29 10:49
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!