0

ユーザーがセルを選択できるようにしてから、それらのセルで関数を操作できるようにします。

それ、どうやったら出来るの?「ByRef」と「オブジェクトとして」は正しいことをしているように見えますが、ユーザーの入力がオブジェクトではないため、Excel/{Libre,Open}Office は関数呼び出しを拒否します。

関数を実行するために選択されたセルを見つける方法はありますか?

呼び出しセルのアドレスを見つけるようなことをしなければならなかったとしても、そのセルに入力されたセル名を見つけるために逆方向に作業すれば、うまくいくかもしれません。ユーザーがこの関数を通常の関数のように記述できるようにし、この関数で選択したセルを変更できるようにするソリューションを受け入れます。これが私が話していることです:

Function SIMVOL( rF, ByRef mX, mY, cR, cS ) ' or Function SIMVOL(...mX as Object...)
    mX.value() = 10
    SIMVOL = mX.value() * mY
End Function
4

1 に答える 1

0

以下は、 Andrew Pitonyak の OpenOffice マクロ ドキュメントから適用された例です。それはあなたを正しい方向に導くはずです。

Sub DivideSelectionByTen()
  REM Divide the current selection by 10
  Dim oData()
  Dim oRow()
  Dim i As Integer
  Dim j As Integer

  Dim oRange As object
  Dim dDivisor As Double

  oRange = ThisComponent.getCurrentController().getSelection()

  dDivisor = 10

  oData() = oRange.getDataArray()
  For i = LBound(oData()) To UBound(oData())
    oRow() = oData(i)
    For j = LBound(oRow()) To UBound(oRow())
      oRow(j) = oRow(j) / dDivisor
    Next
  Next
  oRange.setDataArray(oData())
End Sub
于 2014-05-07T23:20:34.400 に答える