2013/04/12

不正なVBスクリプトのせいで、Outlook 2010が起動しなくなる

Outlook 2010の使い勝手をよくしようと、VBスクリプトを組んでみている。で、失敗した。

起動に実行されるハンドラの中に、書いてはいけない処理を書いてしまったらしい。Outlookが、起動に失敗するようになった。アプリケーションエラーを吐いて、異常終了する。VBE7.DLLでこける。

違うプロファイルを設定しても、落ちてしまう。やっちまったぜ。

で、Googleさんだのみで調べてみると、ありました。
http://stackoverflow.com/questions/233702/where-does-outlook-store-the-vba-code-files

ここにいろいろ対処の仕方が書いてあった。曰く、違うユーザでログインしてOutlookを起動して、新しいVBAのファイルを作って、それをコピーせよとの、こと。

面倒くさかったので、Userデータの下のVbaProject.OTM を検索して見つけて、VbaProject.OTM.orgにrenameして、Outlookを起動したところ、無事起動した。ちなみに、VbaProject.OTMファイルはテキストではないので、編集不可。

変更前のVBスクリプトは別に保存してあったので、それでVBスクリプトを元に戻して、復旧できました。

あー。えらいこっちゃ。

2013/04/10

PCがランダムにクラッシュ → 復旧作業

前に書いたように会社のPCがおかしい。メモリが不調なのだろうと思い、メモリを購入して差し替えてみた。が、同じエラーが出る! ああああ、メモリではなかったか。

メモリを入れ替える前に、CHKDSKやSFCコマンドでディスクやシステムファイルが不正になっていないかも調べていたのだが、問題は見つからない。

仕方がないので、OSをリフレッシュすることにした。まずは、インプレースアップデートをかけてみた。要するに、Windows 7をWindows 7でアップデートするような手順。それまでにインストールしたプログラムやデータは保持される。Windows 7のDVDのsetupを実行すると、インプレースアップデートが実行される。BitLockerをかけているのだが、その場合は、システムドライブの暗号化を一時的に中断するように指示されるようだ。

で、インプレースアップデート自体は無事終了したようだ。が、一部のプログラムが正常に動作せず、、、、。まぁ、いろいろ変なプログラムが入っているのだが、正常にログインできなくなった。ログインはできるのだが、あるプログラムが不正な動きをするようになったせいで、ログインに異常に時間がかかったり、、、。ログインできた後も、まぁ、プリンタが見えなくなるなど、いろいろ問題あり。

で、件のプログラムをアンインストールしようと思ったのだが、、、、システム管理者でなければできない設定になっており。。。

うまくいかないので、インプレースアップデートはあきらめ、次の手段へ。

このPC、セットアップしたときに、実は、システムイメージを取得しておいた。こういうときのために。まぁ、いろいろ戻ってしまうかもしれないが、システムイメージで復元することにした。Windows 7のDVDから起動し、言語設定等指定すると、修復セットアップを実行できる。ここで、システムイメージからの復元を選択する。

BitLockerをかけていると、復元キーを聞かれるので、ちゃんと用意しておくこと。復元キーを入力しないと、先に進めない。

めでたく、ドライブの後ろのほうに保存してあったシステムイメージが見つかり、これでCドライブを復元できると思ったそのとき、怪しいダイアログが。

パーティションが削除され、それぞれのパーティションはフォーマットされ、システムイメージを採取したときのサイズにパーティションがきりなおされ、で、システムイメージが復元される、、、といったことが書かれている。

????

システムイメージを採取したときはCドライブのシステムイメージを取ったのだが、同じディスクドライブに複数のパーティションが有る場合、Cドライブだけを復元することはできないようなのだ。なんと、、、、、。私の場合、データはほとんどNASに入っているのだが、OutlookのPSTファイルだけがDドライブにある。これが、サイズがでかく、、、、、。他に退避不能。退避したとしても、時間かかるし。。。

なんて仕様だ。。。。使えない。

で、最後の手段のクリーンインストールになったのでした。

で、PCの不調が解消したかどうかは、まだ定かではない。

2013/04/06

メールでの全員に返信

こんなことを知らなかったのか、という恥ずかしい話。

会社では、職場の連絡用にメーリングリストを設定している。部だったり、課だったりの単位で。異動があって新しく部に来る方がいると、メーリングリストと個人のアドレスを宛先にして、連絡事項をやり取りする。

で、こんなことが、発生。
(1) メーリングリスト+新しく来る方Aを宛先として、メールが送信される。
  私には、メーリングリストからメールが届く。
(2) Aさんが、全員に返信する。
  私には、Aさん発で、メーリングリストからメールが届く。
  このとき、メーリングリストには、Aさんは登録されていない。
(3) 私が、このメールに、全員に返信で、返信する。

さて、何が起きるか。これは、返信対象のメールを送った方のメーラの設定、返信しようとしている人のメーラ、メーリングリストの設定に依存する。

まず、返信対象のメールを送信した方が、Reply-toを設定している場合。返信先アドレスを、メーラや、メール送信時に設定している場合。返信メールの宛先は、このReply-toに設定されているアドレスと、メーリングリストのアドレスになる。つまり、Aさんが、Reply-toにAさんのメールアドレスを設定している場合、Aさんとメーリングリストが、返信メールの宛先になる。これは、たぶん、返信者のメーラには依存しない。自然な動作だと思われる。

(正確には、メーリングリストのソフトがReply-toを上書きする場合があるため、それにも依存する)

Reply-toが指定されていない場合が、あやしくなる。メーリングリストの設定が、Reply-toをメーリングリストにしている場合。この場合、全員に返信の挙動は、メーラ依存になる。Outlook 2010 SP1の場合は、Reply-toのアドレス、つまりメーリングリストのアドレスになる。加えて、他の宛先がある場合は、それも追加される。しかし、返信対象のメールの送信者のアドレスは宛先に入らない。つまり、Aさんは返信メールの宛先には入らない。

Thunderbirdでは、全員に返信をすると、返信メールの送信者のアドレスも宛先に入る。

何が言いたいかっていうと、Outlook派の私は、この状況では、Aさんにメールを送りそびれるということ。

#だから、新部長にメールが届かない事例、多数発生。。。やばいやばい。

それにしても、こんなことを知らなかったなんて、、、。恥ずかしい。

疑問なのは、各個人は、Reply-toを設定すべきなのか、どうか。基本的には、事情があって、Fromに返信しないで、という場合に設定するものだろうから、設定していないのは普通。っていうか、他の人にReply-toを設定せよ、というのも変。

Outlookのスクリプトで、Reply Allの場合は、差出人を強制的に宛先に入れることもできるが、、、。メーリングリストが宛先に入っていて、その方がメーリングリストのメンバだと、メールが2通届くことになる。これは、、、、、うざったい。

返信時に宛先を注意する以外に、解決策がないのか。。。。まぁ、もとメールの差出人に届くかを確認するだけなので手間ではないが、、。あ、もともとの差出人が宛先に含まれないよ、って警告が出ればよいのか。。それなら、スクリプト化する意味があるかもね。