重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

セルで=Function1で戻り値が複数あり、指定したセルに値を返す方法はありますか?

A 回答 (4件)

ユーザ定義関数は、その関数を呼び出しているセルが対象になります。


複数の戻り値(配列)を受け取る事は出来ますが、
セルに呼び出し(=関数)が入力されていなければ、当然受け取ることは出来ません。
また、Functionプロシージャ内でセルを操作する場合も正しい戻り値が返らないと思います。

以下 参考及び抜粋 
https://support.office.com/ja-jp/article/excel-% …

カスタム関数で使用できる VBA キーワードの数は、マクロで使用できる数より少なくなっています。
カスタム関数では、ワークシート内の式、または別の VBA マクロや関数内で使用されている式に値を返す以外のことは許可されていません。
たとえば、カスタム関数は、ウィンドウのサイズ変更、セル内の式の編集、セル内のテキストのフォント、色、パターンの

各オプションの変更を行うことができません。 Function プロシージャにこの種の “アクション“ コードを含めると、#VALUE! エラーが返されます。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。出来ないということがわかりました。

お礼日時:2020/03/29 18:51

何かマクロでやる作業のようにも思えますが。


指定したセルってのが例えば、B3,C6,D10 などって事であればですけど。(数式で出来るのかな?数式は壊滅的にダメダメです。VBAでやる方が楽なので。)
    • good
    • 0
この回答へのお礼

回答ありがとうございます。VBAでやれば済む話でした。もともと関数でやってたのをFunctionにしたら増えちゃって、今全体をVBAで作り直してます。

お礼日時:2020/03/29 18:54

方法が無いことな無いようですが、お望みの事が


実現できるかと言えば、微妙ですね。
とりあえず、配列数式で複数の値を表示する
要領で実験してみました。
こんな感じです。

Function Function1() As Variant
Function1 = Array(3, 5, 9)
End Function
「ユーザ定義関数で他のセルに戻り値を返す方」の回答画像2
    • good
    • 0
この回答へのお礼

回答ありがとうございます。出来ないということがよくわかりました。

お礼日時:2020/03/29 18:55

書き込んだ出るセル位置を判定して読込先を変えればいいのでは



基本的に結果を返すセルに書くと思いますが
    • good
    • 0
この回答へのお礼

回答ありがとうございます。出来ないということがわかりました。

お礼日時:2020/03/29 18:49

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