• ベストアンサー

Excel2007で関数を作成した場合の保存先

Excel2007で関数を作成しました。 この関数を保存して、作成したExcelのBook上で使おうとしています。 xlsm形式で保存したのですが、 次にBookを開いた際には関数が反映されなくなっていました。 この場合に保存先はどのようにすればよいでしょうか?教えてください。 もしファイルの構造などについてわかりやすい参考資料などがございましたら、 教えていただけると幸いです。

質問者が選んだベストアンサー

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

そのブックでしか使わないなら,そのブックに持たせておくのが適当です。 もちろん他のブックでも使いたいなら,個人用マクロブックに持たせたり,またアドイン形式に変えて組み込んで使う事もできるのはご存じのことと思います。 ブックの保存形式は,マクロ有効ブック,バイナリブック,97-2003形式のどれを選んでもマクロの動作には影響ありません。 >反映されなくなっていました #NAME!エラーが現れたという状況なら,通常はマクロを有効にしてブックを開いていない症状です。 Excelのオプションからセキュリティセンターの設定で,マクロの設定やメッセージバーの設定を調整し,マクロを有効にしてブックを開きます。 参考資料: http://office.microsoft.com/ja-jp/excel-help/HP010096919.aspx 他のエラーが計算されたり,単に計算結果が思わしくないという意味なら,単純に考えるとプログラムの間違いです。

bouda
質問者

お礼

教えていただいた方法で解決いたしました。 ありがとうございます。

その他の回答 (1)

  • ytsg
  • ベストアンサー率58% (7/12)
回答No.2

その関数で参照しているセルの値が変更されても関数の結果が更新されない、という現象でしたら自動再計算関数になっていないのではないでしょうか。 自動再計算関数になっていないと、関数式を入力したときは計算されますが、一度入力して確定した後は参照元セルの値(関数の引数)が変わっても関数の結果は更新されません。 もしその現象であれば、マクロの保存先の話ではありません。 普通にそのブックに保存してあれば問題ありません。 ※自動再計算関数にするには関数の先頭にApplication.Volatileを追加してやります。 Function My_Func() Application.Volatile ' ' 関数の実際の動作を記述します。 ' End Function ただし自動再計算関数にすると、シート上のどのセルが更新されてもその関数が計算されるので、多用すると動作が重くなりますので、計算方法を手動にするなどの対応があります。

bouda
質問者

お礼

質問を投稿した時点で、ご指定いただいた点について認識がありませんでした。 今後、関数を利用するにあたって留意すべき点がわかりました。 ありがとうございます。

関連するQ&A