• ベストアンサー

エクセル ユーザー定義関数がリアルタイムに機能しない

次のような仕様のユーザー定義関数を作りましたが、関数入力直後しか、働いてくれません。リアルタイムに動くようにするには、どんな仕掛けを作成したら良いのか分かりません。 A1:A10の範囲にA1からA10に向かって、任意のセルにデータを入力します。この範囲の最下段に入力された情報を表示させるユーザー定義関数です。 このロジックは正しく機能しているのですが、範囲内の情報を入れ替えても、反応しません。再度、定義関数を入力すると、正しい結果を表示する状態です。

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

  • ベストアンサー
  • kbonb
  • ベストアンサー率51% (254/492)
回答No.2

こんにちは Application.Volatile をあたまにつけてみたらいかがでしょうか?

参考URL:
http://www2.odn.ne.jp/excel/
kmasumi
質問者

お礼

ありがとうございます。できました。 本屋さんで、何冊も立ち読みしましたが、わかりませんでした。 これで、今夜は快眠です。では、退社させていただきます。

その他の回答 (1)

  • telescope
  • ベストアンサー率54% (1069/1958)
回答No.1

計算方法は自動になっていますか? 「ツール」-「オプション」-「計算方法」タブで、自動を選んでいないと、再計算しませんが・・・。 あるいは、F9を押すとか。

kmasumi
質問者

お礼

超スピード回答ありがとうございます。 確認してみましたが「再計算」になっています。やっぱりユーザー定義関数に何らかの仕掛けが必要では?

関連するQ&A

  • エクセルユーザー定義関数(1)

    エクセル初心者です。 複数のセル範囲(例えばRange("A1:A100"))を入力させ、入力されたセル範囲すべてのセルを3乗した総和を求めるユーザー定義関数は作ること可能でしょうか? Function Y(a As Range) As Variant ここに、aで選択されたセル全てを3乗して総和を求める関数Yを定義したい。 End Function よろしくお願い致します。

  • Excelユーザー定義関数が書き込まれているセルアドレス

    Excelのユーザー定義関数で、自分自身が書き込まれているセルのアドレスって取得出来るのでしょうか? 例えば、 Function test(MyString As String) As String test = "入力された文字は、「" & MyString & "」です" End Function とユーザー定義関数を作り A1のセルに =test("てすと") と書くと 入力された文字は、「てすと」ですと出てきます。 そこで、ユーザー定義関数のなかで、ユーザー定義関数を呼び出した式が入力されている(上記の例ですと、「A1」)アドレスを取得する方法ってありますか? どなたか、詳しい方いらっしゃいましたら教えてください。

  • エクセル2007のユーザー定義について教えてください。

    エクセル2007のユーザー定義について教えてください。 A1のセルにX001のようなコードが入力されている場合,RIGHT関数を使って右端の1を抽出し,この1に「日目」などの文字を結合して「1日目」と表示したいですがセルのユーザー定義で可能でしょうか。=RIGHT(A1,1)&"日目"のようにやればできますが,セルのユーザー定義でやりたいと思っています。

  • Excelのユーザー定義関数について。

    ネットで調べて「アルファベットのみを半角にする」というユーザー定義関数を発見し使用していますが、 この関数にある特定の文字を変換する条件を追加することはできますでしょうか。 例えば、リンゴ という文字がセル内にある場合、ミカン に変換されて表示されるという条件を下記のユーザー定義関数に加える事ができますか。 もしくは、新たに別のユーザー定義関数を作るしかないのでしょうか。アドバイスよろしくお願いします。m(_ _ )m Function ASC_A(str As String) As String Dim i As Integer For i = 1 To Len(str) If Mid(str, i, 1) Like "[a-zA-Z]" Then Mid(str, i, 1) = StrConv(Mid(str, i, 1), vbNarrow) End If Next ASC_A = str End Function

  • エクセルのユーザー定義関数を使って

    どうしても、理解出来ないユーザー定義関数があります どうかお解かりの方がおられましたら、教えて下さい  お願いします 例えば、試験結果を80点だったら(合格)表示 80点未満だったら(追試)表示させるところまでは出来たのですが・・ その後の、(合格)だったら文字色を【青】で表示 (追試)だったら文字色を【赤】で表示させるユーザー定義が 何度トライしても失敗の連続で。。 どうしても判りません。 色々なサイトでエクセルに関するユーザー定義も調べましたが ヒントになるようなページが見つかりませんでした あつかましいお願いかとは思いますが どうか初心者の私にでも理解出来るように教えていただけないでしょうか? どうか どうか よろしくお願いします

  • ユーザー定義

    A1に、「正解」 と入力すると「 ○」、「残念 」と入力すると「 × 」を 同じA1に表示するユーザー定義の設定方法はどのようにしたらいいでしょうか?

  • エクセルの書式設定→ユーザー定義

    エクセル2003です。A1のセルに300と入力しA2のセルに17.5と入力したら@17.5と表示したいのです。A3に掛け算の合計5250となるよに。A2に書式設定→ユーザー定義で##”@”###とし17.5と入力したら@18になってしまいます。いろいろ試したのですがうまくいきません。ユーザー定義を教えて下さい。よろしくお願いします。

  • Excelのユーザー定義関数について

    win98seでExcel2000を使用しています。 標準の関数を使用する際、「挿入」→「関数」で「関数の貼付け」ダイアログがでますよね。その後、使用する関数名をクリックすとダイアログボックス内の下のほうに説明文が表示されます。 その説明文をユーザー定義関数にも付けたいのですが、どうすれば良いのでしょうか?どなたか宜しくお願いいたします。

  • エクセル関数で名前定義を引用

    エクセル2002使用です。 IF関数で、名前の定義を利用したいのですがうまくいきません。 A1に数値「1」を入力するかしないかとします。 (A1:C1)を名前の定義で「範囲1」とします 各セルに文字が入力されています。 (D1:F1)を名前の定義で「範囲2」とします。 各セルはブランクのままです。 A1セルに数値「1」が入力されて時に、「範囲2」に「範囲1」がコピーされるようにしたいのですがどうすればいいのでしょうか? 範囲2=IF(A1=1,範囲1) ではだめですよね。。。。 よろしくお願いします。

  • 入力がないのにユーザー定義で定義した文字列が常に表示されてしまう。

    入力がないのにユーザー定義で定義した文字列が常に表示されてしまう。 VLOOKUP関数とIF関数を組み合わせて「=IF(A1="","",VLOOKUP(A1,D2:C5,2,FALSE))」という関数を入力しています。 念のため申し上げますと、 VLOOKUP関数で「D2:C5」の表からデータを検索し、そのデータに該当した行の指定列からデータを取り出しているわけです。 IF関数は、「#N/A」エラーを表示させたくないためです。 この計算式を入力しているセルの書式設定を、ユーザー定義で、「"○""○""○""○""○""○""○"@」としたのですが、 A1セルに入力が無く入力の無いはずのセルに「○○○○○」が常に表示されてしまいます。 どこが間違っているのでしょうか? お知恵を拝借させてください。

専門家に質問してみよう