2012年5月31日木曜日

Excel:カッコを含んだファイル名によるエラーと謎な挙動

スラッシュや円記号などWindowsでファイル名に使えない文字というのがあります。
それとは別に、Excel固有の「使ったらまずい」という文字もあります。ファイル名に使うことはできるんですが:

Excel のファイル名にカッコなどの記号を含むとエラーメッセージが表示される - Microsoftサポート

例えばユーザー定義関数を含んだ「FileName(TEST).xlsm」という名前のファイルがあるとします。
関数の名前は「テスト」 で、他のブックから呼び出そうとするとします。


ブックの名前はシングルクォーテーションで囲まれていて一見問題ないように見えます。
しかしこのまま挿入すると「入力した名前は正しくありません」というエラーになります。


手動で入力すれば通るんですけど、「関数の挿入」では丸括弧で引っかかってしまうようです。

さて、 このカッコを含んだファイル名でおかしな挙動に気づきました。
上の例と同じく丸括弧を含んだ「FileName(TEST).xlsx」というファイルと、やはり非推奨の角括弧を含んだ「FileName[TEST].xlsx」というファイルがあるとします。丸括弧の方を開いてから角括弧の方を開いても何も起こりませんが、角括弧の方を開いてから丸括弧の方を開こうとするとエラーになります。


問題回避のためなのか、どうもExcelがファイル名の角括弧を丸括弧に置き換えようとするようです。

両方のファイルを開いたとします。それぞれアクティブなシートのセルA1に「角括弧」「丸括弧」という文字列を入れてあります。もう一つ別のブックから角括弧のA1を参照しようとすると、ブックの名前が丸括弧に置換されてしまうのです。


そして参照するのは丸括弧の方になります。って、なんじゃそりゃー

丸括弧の方は閉じて同じことをやってみます。


こうしても名前は丸括弧に置換されてしまいますが、今度は開いている角括弧の方を参照します。
角括弧も閉じて、どちらもフルパスで外部参照になっているところ:


角括弧の方の参照は()ではなく[]になりました。妙なことが起こりますね。

ただし角括弧の方は、これ以降は不正な参照先として認識されてしまいます。
セルを編集しようとすると「このワークシートの数式に、1つまたは複数の無効な参照が含まれています」というエラーになります。また一度保存して閉じてから再び開こうとすると、「読み取れない内容が含まれています」というエラーになり、リンクが削除されて「角括弧」という文字列に置き換えられてしまいます。

そう言えば知らなかったのですが、こういうエラーもあるそうです:

Excel のファイル名に全角の引用符 (") が含まれるとダブルクリックでファイルを開くことができない - Microsoftサポート

確かに開けませんでした。
まあ角括弧だの全角引用符だの、ふつうファイル名に使うとは思いませんけど・・・Excelの使い方って人によってほんと千差万別なので、こういうこともあるんだと覚えておこうと思いました。

0 件のコメント:

コメントを投稿