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

お世話になります。
当方、Windows XP(Home Edition 2002 SP2)にoffice2000をインストールして使用しています。
Excel2000において、最後に印刷プレビューが出るマクロを作成し使用しているのですが、マクロが動作しきった後、「印刷」もしくは「閉じる」のボタンを押すと、エクセルそのものが閉じてしまいます。閉じてしまったファイルを再度開こうとすると、「別のユーザーが開いています 使用者:○○○(自分のユーザー名)」となり、読み取り専用でしか開くことができなくなります。
ただし、マクロを使用しないで印刷プレビューを開いた場合は、プレビューのみ閉じることができます。
PCを再起動させても同様のことが起こり、マクロウイルスも検知できませんでした。

内容が分かりづらいかもしれませんが、どうぞよろしくお願いいたします。

A 回答 (5件)

とりあえず定番の対処法です。

上から順に試してみてください。
1 または 2 の作業で回復することが多いです。

1. *.xlb ファイルの削除
  http://homepage2.nifty.com/winfaq/c/trouble.html …
2. Temp フォルダ内の一時ファイルの削除
3. Office アップデートの実行
4. プリンタドライバを最新のものに更新
5. ディスプレイドライバを最新のものに更新

この回答への補足

ありがとうございます。
早速1→2と試してみましたが効果が無く、3を実行しSP3までインストールしましたが、マクロが入っているファイルの全てを開くことができなくなってしまいました。
ノートンのインターネットセキュリティをインストールしているため、オフィスのウィルス検索をしないようにしたりしましたが、「ファイルを開いています・・・」の状態で固まってしまいます。
なにか足りない作業があるのでしょうか。

補足日時:2008/01/30 09:34
    • good
    • 0
この回答へのお礼

ありがとうございました。
補足に書いたような現象は一旦収まりました。
5番まで試しましたが、画面が閉じてしまうのは相変わらずですので、新しいオフィスの購入も検討しつつ、様子を見たいと思います。
本当にありがとうございました。

お礼日時:2008/01/30 21:57

>読み取り専用でしか開くことができなくなります。


[Alt]+[Ctrl]+[Delete]で、問題のExcelを終了すれば、再起動しなくてもいいかもしれません。

とりあえず、突然落っこちてるみたいですけど、問題のコードも一部なのでわからない部分もありますが、

1.壊れたファイルかも
新規にBookを作り、セルとモジュールをコピーしてみる。
動けば、ファイルが壊れてたんだと思います。
動かなければ、とりあえず問題のモジュールだけをコピーして動くか調べる。(セルに何もないと印刷やプレビューしないので、何か書きこんで)
補足のモジュールは end sub はあるけれど、その上が分からないので、できたらまず sub test() にしてやってみる。
動けば順に他のモジュールやシートをコピーしてみる。

2.APIとか使ってません?
他の部分でAPIとか使ってませんか?
Workbook_Openや、Worksheet_Activateとかで、何かしてませんか?

3.セキュリティがあやしい
とりあえず、セキュリティを一時無効にしてみる(怖い話だけれど)。

とかではどうでしょうか?
    • good
    • 0
この回答へのお礼

ありがとうございます。
マクロ・VBAに関して初心者で、作成するのもコードを入力したのではなく、マクロの記録を行って作成したものでした。
教えていただいた内容を試してみます。結果については補足の欄で報告させていただきます。ありがとうございました。

お礼日時:2008/01/29 21:40

こんばんは。



#2の回答者です。

#2で考えていた内容とは違い、それでは、ハングするはずはありませんね。
そういう現象は覚えがあるのですが、今は、はっきりしません。

Sub TestMacro2()
With ActiveSheet
 .Columns("U:V").Hidden = True
' .Range("W1:X1").Select '意味が分かりません。
 '.PageSetup.PrintArea = .Range("W1:X20").Address ''例
 .PrintPreview
 .Columns("U:V").Hidden = False
End With
End Sub
    • good
    • 0

こんばんは。



私も、#1 さん同様に、コードを見せなくてトラブルがあるという質問には、基本的に、VBAの質問として成り立ちません。コードを披露しても、決して、あなた自身を批判するような人はいませんし、さげすむような人はいません。いたら、その人は相手にしないほうがよいです。誰でも、最初はあるわけで、いきなり上手になる人は、数少ないです。

実際、そのコード自体は、言うまでもなくハングしています。
直すべき点というよりも、もともと内容的に印刷のユーザー選択ですから、プレビューまででコードは止めることにします。これ以外にも、作ったことがありますが、あまりはっきり覚えがありません。確か、公開されていない方法があったように思います。

Sub TestMacro()
 With ActiveSheet
   .PageSetup.PrintArea = .Range("A1").CurrentRegion
   .PrintPreview
 End With
End Sub
    • good
    • 0
この回答へのお礼

ありがとうございます。
肝心なことをお伝えしていませんでしたが、マクロ・VBAに関して初心者で、作成するのもコードを入力したのではなく、マクロの記録を行って作成したものでした。
教えていただいた内容を試してみます。結果については補足の欄で報告させていただきます。ありがとうございました。

お礼日時:2008/01/29 21:37

>最後に印刷プレビューが出るマクロを作成し使用しているのですが


ご自身で作成されたのですか?
Excelを閉じるようなコードがあるとか?

と言うかコードの提示がないので何とも言えないですが。

この回答への補足

マクロは自分で作成しました。
エクセルを閉じるコードは入れていないつもりです。
概要は、印刷の際に必要の無い列を隠してページの設定を調整し、プレビューを表示させるというものです。

コードとは下記のことでよいのでしょうか。

Columns("U:V").Select
Selection.EntireColumn.Hidden = True
Range("W1:X1").Select
ActiveWindow.SelectedSheets.PrintPreview
End Sub

補足日時:2008/01/29 17:50
    • good
    • 0

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