VBA 関数からスプレッドシートのセルを埋めたいだけです。たとえば、セルに =FillHere() と入力すると、いくつかのセルにデータが入力されます。
私はそのような機能で試しました:
Function FillHere()
Dim rngCaller As Range
Set rngCaller = Application.Caller
rngCaller.Cells(1, 1) = "HELLO"
rngCaller.Cells(1, 2) = "WORLD"
End Function
範囲を変更しようとするとすぐに壊れます。次に、これを試しました(実際に探している動作ではありません):
Function FillHere()
Dim rngCaller As Range
Cells(1, 1) = "HELLO"
Cells(1, 2) = "WORLD"
End Function
これも機能していません。しかし、F5 を使用して VBA からこの関数を開始すると機能します。関数の呼び出し中にスプレッドシートで何かを変更することはできないようです...一部のライブラリはそれを行います...
また、関数から配列を返すことも試みました (実際、これが最初のアイデアでした)。問題は、配列の最初の要素しか取得できないことです (左上隅の数式 + F2 + CTRL-SHIFT-ENTER で領域全体を選択することを暗示するトリックがありますが、それはユーザーが知る必要があることを意味します)配列のサイズを事前に)。
私は本当にこの問題で立ち往生しています。私は最終的なエンドユーザーではないので、できればまったく引数のない、非常に使いやすいものが必要です。
PS: 申し訳ありませんが、既にこの質問をしてしまいましたが、その時点では登録されておらず、もう他のスレッドに参加できないようです。