投稿

3月, 2011の投稿を表示しています

マクロを含んだ.XLSがExcel2010で開けない

イメージ
開けない。。。ずいぶん前に作られた.XLSを開こうとしたらメッセージが表示される。
「このブックにある、VBA プロジェクト, ActiveXコントロール,およびその他のプログラミング関連の機能は失われています。」  あの、結構大事なマクロなので、それ困るんだけど、と思いつつ調べると、どうも.XLSに含まれるマクロが開けないのが原因らしい。
セキュリティの関係だと思うけど、Excel2010ではマクロは標準では有効化されていないらしく、その状態でファイル開くと上記のようなメッセージになる模様。

そこで、ここら(http://msdn.microsoft.com/ja-jp/library/ee814737.aspx)を参考に「開発」タブを有効にします。2014/3/11追記Excel2013の例)[ファイル]-[オプション]でオプションで「開発」の項目にチェックする。Excel2013だと、以下は不要っぽい。VBAのモジュールも要るよ
そして、再度開こうとしたらやっぱり開けない。「開発」タブのVisual Basicやマクロのアイコンも無効になったままなので、もしかしてVBAのモジュール自体がインストールされていないの?
コントロールパネルで確認したら、案の定インストールされていない。 インストールの指定をしてあげたら、ようやく開けるようになりました。
ったく、不親切すぎるぞマイクロソフト。

Evernoteで間違い電話

Evernoteっていうか、iPhoneのカメラで撮った画像をEvernoteへ保存してくれるアプリが原因で間違い電話しました。

このアプリ、写真データをPDF化して保存してくれるんですが、日付を元にファイル名を付けてくれます。PDFを開こうとしたら、ファイル名の番号部分を電話番号と認識したEvernote(iPhone?)が発信しちゃいました。すぐに気づいて慌てて切ったのですが、発信先をみて青ざめた。

ちなみにこの問題のファイルの撮影日は2011年2月25日。ファイル名は西暦が2桁に省略されて"11-02-25~.pdf"。。。 と、ここまで読んで気づいた方います?

最初の3ケタって、普段はあまりお世話にならない番号ですよね。どうも、そういうところにワンギリしたようです。すみません。ごめんなさい。

慌ててドキュメントを削除。すっごい変な汗が出た。

英語版のアプリケーションでエラーが出る原因

英語版のアプリケーション使っていると、時に思ってもみないエラーに見舞われることがあります。

先日も、再現率100%のエラーを開発元にレポートすると、どういうわけか「こっちじゃ再現しないよーっ」って返事が返ってくるので、英語版の環境で試してみると確かに再現しない。

はて???

原因不明ですが、すくなくとも言語関係に依存したエラーである可能性が高いので、いろいろと試してみることになります。

最初に試してみるのは日付と時刻の形式。
日付や時刻を扱う場合、自国の形式しか想定していないと日本だと結果的にエラーになることがあります。日本では日付の形式は"yyyy/MM/dd"ですが、国によっては"dd/MM/YYYY"と真逆だったりします。APIは国ごとの形式に合わせて値を返すので、これを意識していないと例えば"2011/3/2"を西暦2年3月2011日のようにとんでもない日付として処理してしまうことになります。ばかばかしい例ですが、本当にこういうのが原因でエラーになるケースがあります。

でも再現しない。

で、次はシステムロケール
Unicode対応のアプリケーションは別として、それ以外のアプリケーションでは自国の文字コードなどに依存しているケースがあります。何の処理で引っかかるのか文字コードの違いでエラーを起こすことがあります。特に長期間開発が続いているアプリケーション(=古いコードを含んでいるアプリケーション)だと、結構確率高いです。
文字化け程度なら我慢すれば済みそうですが、エラーになるのは困ります。システムロケールを英語に変更してエラーにならないようなら、そのあたりが原因です。これは逆もしかりで、英語版でもシステムロケールを日本語にして試すとエラーを再現することができます。

と、こんな感じで試して絞り込めたら、ふたたび海の向こうへメールを出すのです。

でもねー、日付とかわかりやすい手がかりがあればいいんだけど、まったくそんなの関係ない機能でエラーがでると、ほんと困りもの。原因の切り分け大変なんだもん。