« 2011年10月 | トップページ | 2012年3月 »

2011年12月

2011年12月21日 (水)

Excelが保存時にエラーや強制終了した場合の対処法

ブックの保存時にエクセルが強制終了したとき、
保存しようとしたブックが正常に保存されていないことがあります。

そのようなときの対処法をみていきます。
記憶を頼りに書いていますので
あいまいな部分があります、ご了承を。

まずは、強制終了のダイアログが出ている間に
保存したいファイルのあるフォルダを開いて
ファイルが複製できるか試します。
たぶん複製はできないと思います。

この試みをした後で
強制終了のダイアログでOKボタンを押して
Excelを終了します。

再び、保存したいファイルのあるフォルダを見てください。

このフォルダ内に保存したいファイルがなくなっている場合は、
数字とアルファベットの羅列で
拡張子がないファイルがないか探してください。
例えば「602E0000」のようなファイルです。

このファイルは
Excelがファイルを保存するときに
一時的に作るファイルの可能性があります。

Excelはファイルを保存するとき
このような一時ファイルにすべて保存して
保存を終わったところでファイル名を書き換えます。
保存時にファイル名を書き換えを失敗すると
数字とアルファベットの羅列で拡張子がないファイルだけが残ります。
参: Excel のファイル保存方法について

このファイルの名前に「.xls」と拡張子をつけて
Excelで開いてみます。
開くことが出来れば、
ファイル名を元のファイル名に変更して使っていけると思います。

次に、
保存しようとして強制終了してしまったファイルが
元のフォルダにそのままある場合は
再びExcelを起動して、
そのファイルを開いてみてください。

強制終了してしまうかどうか、
ここが緊張する瞬間です。

通常通り開ければ
問題なく保存できていたと思われます。

強制終了してしまって開けない場合は、
次のWebページを参照してください。
ファイルを開くことができない場合の対処方法

このページには2つの方法が書かれています。
1つはWordでExcelファイルを開く方法、
もう1つはExcelの外部参照を使う方法。

2つとも試したことがあります。

Excelの外部参照を使う方法は
手間がかかりすぎて断念しました。
ですので、WordでExcelファイルを開く方法を
最初に試したほうがよいと思います。

詳細は上のリンクのページにあるので
そちらを参考してください。
WordにExcelのファイルを読み込むのに時間がかかるので
複数シートがある場合は、
1つずつシートを読み込むんで処理したほうがいいと思います。

その他の方法として
エラーをチェックしてファイルを修復する方法もあります。
こちらのページも参考にしてください。
エラー メッセージ "読み取り専用です。アクセスできません" で Excel 2000 または Excel 2002 のファイルを開けない

保存時のエラー全般にはこちらのページ
Excel ファイルを保存するときに発生するエラーのトラブルシューティング方 法

最善は、バックアップがあることです。
このブログでも方法をいくつか挙げている記事があるので
Google検索してそちらも参考にしてください。

| | コメント (0) | トラックバック (0)

2011年12月20日 (火)

使用中のファイルを開く、開かない

手動で使用中のブックを開こうとすると
次のようなダイアログが表示されます。

Vba20111015a

この場合、開きたいブックを
読み取り専用で開くかキャンセルします。

読み取り専用で開く場合は、
他の人がファイルの使用を終了したとき
通知を受け取るかを選択できます。

VBAで使用中のブックを開こうとすると
次のようなダイアログが表示されます。

Vba20111015b

まずこの警告ダイアログを表示させなくします。

Application.DisplayAlerts = False

上のコードでこの警告ダイアログは表示されなくなります。
この場合、開いたブックは読み取り専用になります。

他の人がファイルの使用を終了したとき
通知を受け取るにはOpenメソッドで
Notify引数をTrueにします。

Workbooks.Open Filename:="フルパス", Notify:=True

通知は次のダイアログです。

Vba20111015c

VBAで全部をやろうとしているときは
このダイアログが出ると中断されますので
通知を受け取らないほうがいいと思います。

使用中のファイルを開くコードはこちら

使用中のファイルを開くコード:

Sub macro111015a()
'使用中のファイルを開く
'読み取り専用

    Application.DisplayAlerts = False
    Workbooks.Open Filename:="フルパス", Notify:=False
    Application.DisplayAlerts = True

End Sub

次は、ブックが使用中なら開かない場合をします。

細かく言うと一回は開きます。
ブックを一旦開いて使用中なら閉じるという操作をします。

まず、ブックが使用中であるかを判別する方法です。

使用中のファイルは
読み取り専用でしか開けないことを利用します。
目的のファイルを一旦開いて
このファイルが読み取り専用なら使用中と判断します。

ファイルが読み取り専用かは、次のプロパティでわかります。

ActiveWorkbook.ReadOnly

Trueなら読み取り専用です。

コードはこちら

ブックが使用中なら開かないコード:

Sub macro111015b()
'使用中のファイルを開かない
   
    Application.DisplayAlerts = False
    Workbooks.Open Filename:="フルパス", Notify:=False
   
    If ActiveWorkbook.ReadOnly Then
        ActiveWorkbook.Close
    End If
   
    Application.DisplayAlerts = True

End Sub

共有フォルダに入ったExcelのファイルを
複数のパソコンで使おうとするとき、
強制終了が起きてExcelが終了することが多いです。
また、強制終了が起きたファイルは開けなくなることがよくあります。

複数のパソコンで1つのファイルを開いたり保存したりする場合は
バックアップをこまめにした方がよいです。

| | コメント (0) | トラックバック (0)

« 2011年10月 | トップページ | 2012年3月 »