0

私はOpenOffice Calcを使用しています。 私はOpenOffice BASICでマクロを書いています。 シートにチェックボックスを挿入するには正しいコードが必要です。OpenOffice BASICシートにチェックボックスを挿入する方法

は、私が今

Dim Doc as Object 
Doc = ThisComponent 
Dim cbName As Object 
cbName = "checkbox_name" 

Dim oCheckBoxModel as Object 

// dlg is a dialog, (don't know how to create a checkbox else) 
oCheckBoxModel = dlg.getmodel().createInstance("com.sun.star.awt.UnoControlCheckBoxModel") 
oCheckBoxModel.PositionX = 100 
oCheckBoxModel.PositionY = 100 
oCheckBoxModel.Width = 50 
oCheckBoxModel.Height = 30 
oCheckBoxModel.Label = id 
oCheckBoxModel.Name = cbName 
oCheckBoxModel.Enabled = True 
oCheckBoxModel.TabIndex = 1 
Doc.Sheets().insertByName(cbName, oCheckBoxModel) // This line is totally wrong, but I hope it's clear what I want to do 

は、だから私は、チェックボックスを作成し、シートにそれを挿入する必要があります。 (特定のセルで、またはXとYの位置を設定するだけで)。 インターネットで検索しましたが、コントロールをダイアログに挿入するのではなく、ダイアログボックスに挿入するだけです。

答えて

1

手動でチェックボックスを作成するには、hereを参照してください。チェックボックスを動的に作成するには:

Sub CreateCheckbox 
    oDoc = ThisComponent 
    oSheet = oDoc.Sheets.getByIndex(0) 
    oDrawPage = oSheet.DrawPage 'Was oDrawPage = oDoc.getDrawPage() 
    oCheckboxModel = AddNewCheckbox("Checkbox_1", "Check this box", oDoc, oDrawPage) 
End Sub 

Function AddNewCheckbox(sName As String, sLabel As String, _ 
    oDoc As Object, oDrawPage As Object) As Object 
    oControlShape = oDoc.createInstance("com.sun.star.drawing.ControlShape") 
    aPoint = CreateUnoStruct("com.sun.star.awt.Point") 
    aSize = CreateUnoStruct("com.sun.star.awt.Size") 
    aPoint.X = 1000 
    aPoint.Y = 1000 
    aSize.Width = 3000 
    aSize.Height = 1000 
    oControlShape.setPosition(aPoint) 
    oControlShape.setSize(aSize) 

    oButtonModel = CreateUnoService("com.sun.star.form.component.CheckBox") 
    oButtonModel.Name = sName 
    oButtonModel.Label = sLabel 

    oControlShape.setControl(oButtonModel) 
    oDrawPage.add(oControlShape) 

    AddNewCheckbox = oButtonModel 
End Function 

このコードは、https://forum.openoffice.org/en/forum/viewtopic.php?f=45&t=46391に適合しています。

関連する問題