|
▼かみちゃん さん:
こんばんは。
>無理ではないと私は思います。
>ご提示のコードでは、単にユーザー定義関数の使い方を誤っていると思われるだけです。
>その前に、ユーザー定義関数を使う必要もないのでは?とも思います。
恵さんのユーザー定義関数での動作には・・・、
例えば、標準モジュールに
'==============================
Sub main()
Range("a1").Value = test()
End Sub
'==============================
Function test() As Variant
test = "aaa"
Range("b1").Value = " bbb"
End Function
というコードでmainを実行した時には、
セルA1に値が設定される(つまり、testに値が返る本来の関数の出力値)と
関数内で別のセルB1に値を出力しています。
つまりtestという関数は、二つのデータを出力していますし、
それが可能になっていますよね??
(もっとも、関数としては、出来のよい関数でありませんが)
この現象が下地にあるのだと思うのです。
よって、同じ関数testをワークシート関数として、
セルA1に「=test()]
と指定した時にセルB1に値が設定されないことを
疑問に思っていたのだと推測します。
(私も最初の頃この現象が不思議でした)。
勿論、代替案はあると思います
(イベントを使用する方法が一般的だと思いますが
|
|