プロが教える店舗&オフィスのセキュリティ対策術

エクセル2007で次の関数を使用しています。
=ASC(LEFT(PHONETIC(B4),8))

セルB4に表示された住所を元に、郵便番号を表示させています。

エクセル2002で、同様の関数を入力して保存した場合、
画面のエラーが出てしまいます。

エラーが出なくなるようには、どうしたら良いか教えていただけると助かります。

「郵便番号を表示させる関数のエラーに関して」の質問画像

A 回答 (7件)

>そこで、ファイルの種類を「Microsoft Excel 97-2002 および


5.0/95 ブック(*.xls)」から「Microsoft Excel ブック(*.xls)」に
したところ、エラーが無く保存できました。

なにか最初の質問とは関係ないような感じがするのですが・・・・

そもそも2007で97-2003互換モードとして保存したファイルでは、PHONETIC関数は問題なく利用できます。

一方、Excel2002でExcel95 形式(またはその互換モード)で保存した場合は、当然ですが互換性の問題で例示されたようなエラーメッセージが出ます。

今回の件は、PHONETIC関数を使っていたブックを単純に95形式で保存した(PHONETIC関数は使用できませんのでエラーメッセージが出ます)ということではないでしょうか?
    • good
    • 0

例示されている関数は違いますが、以下のような情報がありました。



[ツール] メニューの [オプション] をクリックし、[オプション] ダイアログ ボックスの [移行] タブの "計算方式を変更する" チェック ボックスを オフ にしてください。

[XL2002]古いバージョン形式でファイルを保存した場合にエラー発生
http://support.microsoft.com/kb/215281/ja
    • good
    • 0
この回答へのお礼

教えていただいたWebページを参考に、チェックボックスをオフに
しようとしたところ、既にオフでした。

そこで、ファイルの種類を「Microsoft Excel 97-2002 および
5.0/95 ブック(*.xls)」から「Microsoft Excel ブック(*.xls)」に
したところ、エラーが無く保存できました。

その結果、今まで郵便番号が出ていた部分に、住所のフリガナが8文字まで
表示されるようになってしまいました。。。

お礼日時:2010/11/22 17:16

私も2003でやってみましたが別に問題ありません。



というか、添付されているメッセージの続きが知りたいですね。
結局何のエラーになるんでしょうか?
エラーの内容が分からない事には・・・

この回答への補足

印刷タイトルのエラーであることに気がつきました。
いろいろイジってみます。

ありがとうございます。

補足日時:2010/11/21 10:10
    • good
    • 0

例示の関数は郵便番号を入力して住所に変換し、そのデータからPHONETIC関数で郵便番号を取得する代表的な方法ですが、ご質問のようなエラーが出ることはありません。



原因は、警告ダイアログにも表示されているようにエクセル2007でしか利用できない関数が含まれているためと思われます。

添付画像の黒塗りをした部分に、その原因が書かれていると思うのですが、なぜわざわざその部分を黒塗りにする必要があるのでしょうか?

また、エクセル2007でそのファイルを互換モードで保存すれば、互換性のチェックでどの部分が問題なのか表示されますので、原因を解明することができます。

この回答への補足

黒塗りした部分を見ると次のようになっていました。

[ファイル名]シート名!Print_Titles

まずは「シート名」のシートの「印刷タイトル」の部分を見てみます!

補足日時:2010/11/21 10:02
    • good
    • 0
この回答へのお礼

対象シートの「行のタイトル」「列のタイトル」とも空欄で、
範囲を指定しても、同様のエラーが出ます。

ただし、関数を消したら、エラーが消えるので、
Excel2002では、使えない関数かもしれませんね。

お礼日時:2010/11/22 08:41

問題のファイルは、もともと、Excel 2007で作ったファイルなのか、そのあたりの情報は、書かれていないように思います。

Excel2007とExcel2002と、ファイルを共有しているのか、xls に変換して保存したの関連性も分かりませんので、こちらの想像の範囲で書かせていただきます。

Excel 2002を、互換性パックで開けている場合は、いずれにしても、Excel 2007 のxlsx ファイルは、期待するのは難しいと思います。

Excelというものは、本来、上位互角はしても、下位互換はありませんから、そこに問題があるように思います。

画像のエラーは、互換性の問題ではないかと思います。このエラーの関数の一体何が保存出来ないのか、一つずつ試してみないと分かりません。(互換性の詳細情報は、Office 2007になってからは、一般には公開されていないようです。)

ひとつは、Excel2007で、下位バージョン形式に保存して使ってみる方法があります。

もう1つは、数式表示を、Excel 2002で、Excel 2007 で作ったxlsxファイルを開いた後に、新たにワークブックを作って、その新しいシートに、数式などを写す方法も考えられます。セルの値ではなく、オブジェクトとしてコピーする限りは、フリガナ情報も入っているはずです。下位のバージョンから、上位バージョンに変更するには問題は、発生することは少ないです。

他の関数についてですが、Vector では、いくつかExcelように郵便番号変換関数が出ているようですが、フリーでは、あまり期待したものはないようです。(いろんな機能を付けたものが多いけれども、それだけのメモリ負担を考慮していないように思われます。)

また、MSの郵便番号ウィザードの中にあるそのAPI関数は過去なは利用は許されていましたが、Office XP時代にプロテクトをしてしまいました。多くのExcelの有識者がMicrosoft にプロテクトを外すように嘆願しましたが、外部の会社で作っているもので、希望には叶えられませんでした。その会社は、単に、自社販売するために、プロテクトをかけただけです。だから、機能は残っていても、使用できません。

なお、あくまでも、ご質問には書かれていない状況を想像した回答ですから、間違っていたら、ご容赦願います。

この回答への補足

会社のExcelは2002で、自宅は2007。

自宅のExcel2007で使用できた関数を
会社のExcel2002のファイルに入れて使ってみたら、
エラーが出ています。

会社のExcel2002の対象となるファイルは、
Excel2002で作られたものです。

補足日時:2010/11/21 10:08
    • good
    • 0

 当方、Excel2002を使用しておりますが、試しに同じ関数を入力し、B4セルに適当な住所を入力してから、保存して、一旦Excelを終了した後、再度そのExcelファイルを開いてみましたが、エラーにはなりませんでした。


 ですから、

=ASC(LEFT(PHONETIC(B4),8))

以外の部分が原因だと思われます。
 他のセルで、
Excel2002には無い(使用出来ない)関数が使用されていたり、
関数自体は存在していてもExcel2002では使用出来ない記述の仕方で、数式が組まれていたり、
他のバージョン用に組まれたマクロを使用していたり
等という事はないでしょうか?

この回答への補足

マクロは使用していません。


(1)住所がセルB4に入力されているとして、B3に次の関数を入れると
住所のフリガナが8文字目まで表示されます。
=ASC(LEFT(PHONETIC(B4),8))

(2)次に言語バーの「般」を「人名/地名」にして、
B4に郵便番号を入れて変換すると、B4に住所の一部と、B3に郵便番号が
表示されます。

その時に保存すると、先ほどのエラーが出る状況です。
他に良い関数があるのでしょうか。

補足日時:2010/11/19 08:35
    • good
    • 0

PHONETIC関数で郵便番号から始まる住所の読み仮名を拾っているようですが、PHONETIC関数を使用する必要はありますか?


普通、郵便番号は漢数字で表記することはありません。
LEFT関数だけで良いような気がするんですけど…

そんなわけで、何か特別な事情があって PHONETIC関数を使われていると察します。
とすると、元のデータが不正な結果になる原因と考えるのが妥当でしょう。
ですので、検証のため当たり障りのない程度の例を示してください。
    • good
    • 0

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