Excel VBA 質問スレッド №2074 (未解決)

ユーザー定義関数の再読み込み方法

投稿者 : 初心者     投稿日時 : 2025/01/25(Sat) 21:10:13     OS : 未指定     EXCEL : 未指定
下記のユーザー定義関数を使用しています。
excelを開きコンテンツの有効化を選択すると、
以前までは正常に表示されていたのですが、先日からセルに「#NAME?」と表示されるようになりました。
セルには「=@jikan(表!A21,表!B21)」と関数は入っているように思います。
ユーザー定義関数を再読み込み?させる方法や、正常に表示させる方法はありますでしょうか?
初心者でユーザー定義関数がなんたるかや、問題解決になにが必要かわかっていないので、判断材料が不足している場合は言っていただければお伝えします。
すいませんが、どなたかよろしくお願いします。

Function jikan(s As Range, e As Range) As String

    formula1 = "①"
    If s = CDate("9:00") And e = CDate("20:00") Then formula1 = "②"
    If s = "" Or e = "" Then formula1 = "休"                         
    If s = CDate("9:00") And e = CDate("22:30") Then formula1 = "③"
    
End Function

スポンサーリンク
[返信 1] Re : ユーザー定義関数の再読み込み方法
投稿者 : てらてら     投稿日時 : 2025/01/25(Sat) 21:32:31
こんにちは。

質問にあるようなエラーは確認できませんでした。

ユーザー定義関数に限らず、Functionの値の返し方がダメです。
値を返す時は、プロシージャ名 = 値 とします。(最後の行)
文字列変数もきちんと定義した方がベターです。(最初の行)

Function jikan(s As Range, e As Range) As String

    Dim str As String
    
    str = "①"
    If s = CDate("9:00") And e = CDate("20:00") Then str = "②"
    If s = "" Or e = "" Then str = "休"
    If s = CDate("9:00") And e = CDate("22:30") Then str = "③"
    
    jikan = str
    
End Function

当掲示板について
  • Excel VBA に関する掲示板です。Excel VBA に関する質問や疑問、それに対する解決方法など気軽に投稿してください。
  • 記事内ではHTMLのタグは使用できません。
  • 記事は一度投稿すると修正できません。内容を訂正したい場合は返信で対応してください。
  • Sub〜End Sub、Function〜End Function は自動的にプログラムコードとみなし、枠で囲って見やすくします。
  • Excel VBA とは関係ないことや、他人が不快に思うようなことなど、管理人が適当でないと判断した記事は削除する場合があります。
スポンサーリンク
返信入力フォーム
お 名 前  :
内  容   :

ステータス  :

認証コード  : キャプチャ画像 




( 処理日時 : 2025-02-07 22:59:02 )
タイトルとURLをコピーしました