• 締切済み

Excelでユーザー定義関数が#NAMEと返される

EXCELでユーザー定義関数を使用しています。 作成時は問題なく動いていたものの、保存後一度閉じたものを再度開いて数式を更新させると「#NAME」と表示されるエラーが出てしまいます。 関数は標準モジュールで定義しています。 ファイルは.xlsxで作成後、.xlmxにして保存しています。 解決方法をご存じの方がいましたら、ご教授いただければ幸いです。

みんなの回答

  • msMike
  • ベストアンサー率20% (363/1775)
回答No.2

[Excel でサポートしているファイル形式] https://support.microsoft.com/ja-jp/office/excel-%E3%81%A7%E3%82%B5%E3%83%9D%E3%83%BC%E3%83%88%E3%81%97%E3%81%A6%E3%81%84%E3%82%8B%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E5%BD%A2%E5%BC%8F-0943ff2c-6014-4e8d-aaea-b83d51d46247?ns=excel&version=19&ui=ja-jp&rs=ja-jp&ad=jp (Excel for Microsoft 365 Excel 2021 Excel 2019 Excel 2016 Excel 2013 Excel 2010 Excel 2007 Excel Starter 2010 ) の中には、貴方が記述した「.xlmx」は見当たらないけど、間違いはないですか? Excel のバージョンは?

  • chie65535
  • ベストアンサー率43% (8518/19364)
回答No.1

>ファイルは.xlsxで作成後、.xlmxにして保存しています。 拡張子xlsmで保存しないと、モジュールがすべて無効になりますので、拡張子が「xlsm」になっているのを確認して下さい。 保存の際に、手入力で「.xlmx」と付けると、拡張子だとは認識されず「ファイル名.xlmx.xlsx」として保存され、モジュールがすべて無効化します。 ですので、保存時は「ファイルタイプ」を「Excel マクロ有効ブック(*.xlsm)」に変更してから、ファイル名を入力して保存して下さい。

関連するQ&A

  • ユーザー定義関数をEXCELに常駐させたい

    VBAの標準モジュールで作成したユーザー定義関数を、*.bas形式でエクスポートしています。 エクセルを立ち上げるたびに、インポートしなければならず、非常に手間です。 また、*.basファイルを職場の仲間にも広めたいと思っているのですが、毎度インポートすることになると、面倒になります。 そこで、誰のEXCEL本体にも常駐させ、SUM関数のようにいつでも使用できる状態にするにはどうすればいいでしょうか?

  • エクセルのユーザー定義関数で(VBA)

    エクセルのVBAで、セルに「=SheetName」と書き込めば、その関数を書き込んだセルが属するシート名をセルに代入さるようなユーザー定義関数を作りたいと考えています。 で、標準モジュールに Public Function SheetName(test) SheetName = ????? End Function と、書き込んでふと止まりました。 ユーザー定義関数を書き込んだシートの名前ってどうやって取得すればいいのでしょうか?VBでいうSenderみたいなのってあるんでしょうか? どなたか?詳しい方教えて頂けないでしょうか? 宜しくお願いいたします。

  • クラスの関数へユーザー定義型の引数を渡す(VB6.0)

    お世話になります。 クラスモジュール内へ宣言した関数へユーザー定義型(標準モジュール内でPublicで宣言)の引数を渡すとコンパイルエラーとなってしまいます。 ユーザー定義型を宣言した以外の標準モジュールでは同じ関数は動きますが、Formモジュールでは動きません。 標準モジュールにしかユーザー定義型の引数を渡すことは出来ないのでしょうか??

  • エクセルのユーザー定義関数呼び出し方法

    エクセルでユーザー定義関数を作成し personal.xls に登録しておいても,関数名だけでは#NAME?エラーとなり呼び出せません.personal.xls!関数名() と入力すれば呼び出せますが,スマートではありません.作成した関数を複数のブックから使いたい場合,関数名だけで呼び出せる方法がないでしょうか.

  • EXCELでユーザー定義関数を使用するには

    EXCELでユーザー定義関数を使用するにはどうしたらいいのでしょう。 functionを定義して、ワークシートで使用しても、#NAMEエラーが出てしまいます。

  • Excel ユーザー定義関数入力方法

    ユーザー定義関数はその関数を作ったファイルでないと セルに直接入力しても関数は出ないのですか 例えば Book1.xlsxとmacro.xlsmというファイルがあります。 macro.xlsmファイルにユーザー定義関数を作成しました。 macro.xlsmだとセルに直接入力しても作成した関数が候補が出ます。 Book1.xlsxだと関数の挿入から見つけないといけません。 macro.xlsmのファイルのThisWorkbookには Private Sub Workbook_Open() Application.MacroOptions _ Macro:="aaa", _ Description:="説明" End Sub と入ってます。

  • VBAで書いたExcelユーザー定義関数が上手く動きません

    WinXPSP2 Office2003 を使用しています。 プログラムは、本やネットで調べただけの素人です。 具体的には、大量のascファイルにファイル自身の情報をヘッダとして書き込む作業をします。 そのために、ファイルの情報などを返すユーザー定義関数を作り、それを用いた一連の書き込み作業をマクロにして保存し、アドイン化してしまおうと考えました。 作業をマクロにしてアドイン化することはできるようになりましたが、肝心のユーザー定義関数を作るVBAが良くわかりません。 たとえば以下のように、ファイルの作成日時を返すユーザー定義関数を書いて標準モジュールに張ってみたのですが、上手く動きませんでした(具体的には”#VALUE!”になる)。 Function CreationDate() CreationDate = ActiveWorkbook.BuiltinDocumentProperties("Creation Date").Value End Function 次の、ファイルの名前を返すユーザー定義関数は上手く動きました。 Function FileName() As String FileName = Application.ActiveWorkbook.Name End Function なぜ後者が動いて前者が動かないのか、よく理解できません。 どのように変えればよいのか、教えていただけないでしょうか? よろしくお願いします。

  • エクセルのユーザー関数が小文字に

    WindowsXP Proffessional OFFICE2003の構成でエクセルを使用していてサービスパックも入れています。 自分でユーザー関数を作って使用しているのですが標準、モジュールのほうで大文字で関数を書いているのにワークシートのほうで使用すると勝手に小文字に書き換えられてしまいます。 標準モジュール一つだけ関数マクロがあるだけでシートのほうには何も記述していません。 ちょっと前まで標準モジュール内の関数を大文字に指定していても小文字に戻されてしまうので、わざとシートのほうに大文字で関数を書くと標準モジュール内の関数が自動的に変わって問題は解決したと思ったのですが、エクセル本体?の関数が変わっておりません。 関数そのものの動きは思った通りに動いています。 こういうときはみなさんはどうなさいますか?

  • Excel2003 ユーザー定義関数

    お世話になります。 ユーザー定義関数について教えて下さい。バージョンはExcel2003です。 B268セルの数式をコピーしてB259~B281までその数式を貼り付けるような使い方をしたいのですが、ユーザー関数は関数の中身を変更しても再計算しないとのことで再計算されません。 セルひとつひとつに貼り付けを行っていくと再計算されましたが、さらに広範囲に一気にユーザー関数を使用した数式を貼り付ける使い方で、再計算させる方法はありますでしょうか。 よろしくお願いします。

  • ユーザー定義関数 アドイン

    ユーザー定義関数をアドインにどうやって保存するのでしょか? また、ユーザー定義関数以外のVBAをアドインに保存できますか?

専門家に質問してみよう