1

OpenOffice でマクロを起動するボタンがあります。マクロ内で、ボタンの名前を変更したい。Excelの元のコードは

    ActiveSheet.Shapes("PunchButton").select
    Selection.Characters.Text = "Punch In"

しかし、最初の行は何もしません。OpenOffice でシートを確認しましたが、ボタンの名前は正しいです。どうすればそれにたどり着くことができますか?

4

2 に答える 2

2

ここには、必要なボタン以外のすべてのボタンのラベルと状態を変更する方法を示すコード スニペットがあります。

Sub clickCommandButton1
    oPage = Thiscomponent.Sheets.getByName("Sheet1").getDrawPage
    iCount = oPage.getCount
    For i = 0 to iCount - 1
        oEle = oPage.getByIndex(i)
        oControl = oEle.getControl()
        If oControl.DefaultControl = "com.sun.star.form.control.CommandButton" Then
            ' Found command button - change label of other buttons '
            If oEle.Name <> "CommandButton1" Then
                oControl.Label = "Inactive"
                oControl.Enabled = False
            End If
        End If
    Next
End Sub 

これを変更して、すべてのボタンを反復処理しますが、内部の if ステートメントを「<>」ではなく「=」に変更します (不要な場合は無効化を削除します)。

于 2009-02-26T01:54:05.600 に答える
0

Pax のおかげで、これが私の作業コードです。どれほど堅牢かはわかりませんが、問題のシートでは機能します。ありがとう、パックス。

sub testThis
    setButtonLabel("PunchButton", "hello")
    setButtonLabel("ReportButton", "hello")
end sub

sub setButtonLabel(controlName, label)
    oPage = ThisComponent.CurrentController.ActiveSheet.getDrawPage
    iCount = oPage.getCount
    For i = 0 to iCount - 1
        oControl = oPage.getByIndex(i).getControl
        If oControl.Name = controlName Then
            oControl.label = label
            exit sub
        End If
    Next
end sub
于 2009-02-26T06:45:59.890 に答える