Witam!
Czy ktoś mógłby mi napisać w jaki sposób za pomocą makra można usuwać pola ComboBox1 i ComboBox2 z arkusza Calca. Niestety mam dokumenty z MS Office zawierające 2 sztuki ComboBox. Gdy dokument edytuję w OO wszytko niby jest ok, ale po zapisie do XLS MS Office nie może tego odczytać. Metodą prób i błędów wykryłem że to kwestia 2 pól Combo i chciałbym by osoba zapisująca te pliki miała możliwość za pomocą makra usunąć te pola, a ta która będzie dalej to przetwarzała w MS Office będzie miała makro tworzące te ComboBoxy ponownie. Sądzę że jest to jedyne wyjście.
Proszę bardzo o pomoc.
Pozdrawiam
benco
Pytanie u usunięcie ComboBox w arkuszu Calc
Pytanie u usunięcie ComboBox w arkuszu Calc
OpenOffice.org 3.2 (OpenOffice.ux.pl 3.2) Windows xp (Vista)
Re: Pytanie u usunięcie ComboBox w arkuszu Calc
Utworzenie ComboBox o nazwie "oCombo"
Usunięcie ComboBox o nazwie "oCombo"
Kod: Zaznacz cały
sub create_control
dim oDrawPage as object
dim oCombo as object
dim oComboCtrSh as object
dim oPos as new "com.sun.star.awt.Point"
dim oSize as new "com.sun.star.awt.Size"
oDrawPage = thisComponent.currentController.activeSheet().drawPage
oPos.X = 1000
oPos.Y = 1000
oSize.Width = 3000
oSize.Height = 1000
oCombo = createUnoService("com.sun.star.form.component.ComboBox")
oCombo.name = "oCombo"
oCombo.dropDown = true
oComboCtrSh = thisComponent.createInstance("com.sun.star.drawing.ControlShape")
oComboCtrSh.setPosition(oPos)
oComboCtrSh.setSize(oSize)
oComboCtrSh.setControl(oCombo)
oDrawPage.add(oComboCtrSh)
End SubKod: Zaznacz cały
sub removeControl
dim oSheet as object
dim oCtrShape as object
dim oDrawPage as object
dim i as integer
oDrawPage = thisComponent.currentController.activeSheet().drawPage
for i = 0 to oDrawPage.Count - 1
oCtrShape = oDrawPage(i)
if hasUnoInterfaces(oCtrShape, "com.sun.star.drawing.XControlShape") then
If oCtrShape.control.name = "oCombo" then
oDrawPage.remove(oCtrShape)
end if
end if
next i
end subOOo3.1.1 na Ubuntu 9.04