Hoe in Calc kolom selecteren tijdens opnemen Macro

dolf
Berichten: 1
Lid geworden op: zo mei 22, 2016 9:50 pm

Hoe in Calc kolom selecteren tijdens opnemen Macro

Bericht door dolf »

Hallo allemaal,

Ik ben nieuw op dit forum en heb waarschijnlijk een heel domme vraag! Ik moet met de Macro-recorder (heb ik gelezen) niet de muis gebruiken maar de toetsen. Zal kloppen want met de muis of touchpad lukt het niet.
Nu wil ik een kolom selecteren en verwijderen met hulp van alleen maar toetsen en ik kan nergens vinden hoe dat moet. Help :!:
Open Office 4.1.2. op Windows10
RPG
Berichten: 4667
Lid geworden op: wo apr 15, 2009 1:01 am
Locatie: Apeldoorn, Nederland

Re: Hoe in Calc kolom selecteren tijdens opnemen Macro

Bericht door RPG »

Hallo

Ik heb geen idee hoe dat moet.
Framework/Article/OpenOffice.org 3.x Commands - Apache OpenOffice Wiki geeft bijna alle mogelijkheden die je kunt gebruiken in een opgenomen macro.

www.pitonyak.org/oo.php geeft een uitgebreide inleiding in macro's.

Romke
LibreOffice 7.4.3.2 op openSUSE Leap 15.4
RPG
Berichten: 4667
Lid geworden op: wo apr 15, 2009 1:01 am
Locatie: Apeldoorn, Nederland

Re: Hoe in Calc kolom selecteren tijdens opnemen Macro

Bericht door RPG »

Hallo

Na gericht zoeken op deletecolumns vond ik dit:
[Solved] Merge/allign cells in Columns macro (View topic) • Apache OpenOffice Community Forum

B.Marcelly gaf daar een voorbeeld van het gebruik van deletecolumns.

Code: Selecteer alles

sub Deletecolumns
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "$C$1:$E$1" 'Use a single column or more as you want

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:DeleteColumns", "", 0, Array())
end sub
Het werkt ook eenvoudig. Het kan ook eenvoudig de column verwijderen waar de cursor is. Probeer het uit op een file die geen belangrijke gegevens heeft.

Romke
LibreOffice 7.4.3.2 op openSUSE Leap 15.4
Gebruikersavatar
DiGro
Berichten: 86
Lid geworden op: wo mei 13, 2009 4:57 pm
Locatie: Hoorn NH

Re: Hoe in Calc kolom selecteren tijdens opnemen Macro

Bericht door DiGro »

Ik zou er niet voor kiezen om daar de macrorecorder voor te gebruiken. Die levert een grote hoeveelheid code op
die onnodig is.

De te gebruiken toetsen;
Pijltjestoetsen om te verplaatsen
Control+Shift+pijltje omlaag om gehele kolom te selecteren
Delete om kolom te verwijderen (er opent een dialoogvenster waarvoor je op Enter moet drukken om ALLES te verwijderen)

Om vanaf cel A1 de kolom E te verwijderen levert dan deze code op:

Code: Selecteer alles

sub TestToets()
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dim args1(1) as new com.sun.star.beans.PropertyValue
args1(0).Name = "By"
args1(0).Value = 1
args1(1).Name = "Sel"
args1(1).Value = false

dispatcher.executeDispatch(document, ".uno:GoRight", "", 0, args1())

rem ----------------------------------------------------------------------
dim args2(1) as new com.sun.star.beans.PropertyValue
args2(0).Name = "By"
args2(0).Value = 1
args2(1).Name = "Sel"
args2(1).Value = false

dispatcher.executeDispatch(document, ".uno:GoRight", "", 0, args2())

rem ----------------------------------------------------------------------
dim args3(1) as new com.sun.star.beans.PropertyValue
args3(0).Name = "By"
args3(0).Value = 1
args3(1).Name = "Sel"
args3(1).Value = false

dispatcher.executeDispatch(document, ".uno:GoRight", "", 0, args3())

rem ----------------------------------------------------------------------
dim args4(1) as new com.sun.star.beans.PropertyValue
args4(0).Name = "By"
args4(0).Value = 1
args4(1).Name = "Sel"
args4(1).Value = false

dispatcher.executeDispatch(document, ".uno:GoRight", "", 0, args4())

rem ----------------------------------------------------------------------
dim args5(1) as new com.sun.star.beans.PropertyValue
args5(0).Name = "By"
args5(0).Value = 1
args5(1).Name = "Sel"
args5(1).Value = true

dispatcher.executeDispatch(document, ".uno:GoDownToEndOfData", "", 0, args5())

rem ----------------------------------------------------------------------
dim args6(0) as new com.sun.star.beans.PropertyValue
args6(0).Name = "Flags"
args6(0).Value = "SVDFN"

dispatcher.executeDispatch(document, ".uno:Delete", "", 0, args6())

end sub
terwijl

Code: Selecteer alles

Sub VerwijderKolom()
Dim Doc As Object
Dim Sheet As Object
Dim NewColumn As Object
 
Doc = ThisComponent
Sheet = Doc.Sheets(0)
 
'Sheet.Columns.insertByIndex(3, 1)  --> kan gebruikt worden voor invoegen van kolom
Sheet.Columns.removeByIndex(4, 1)

End Sub
ook de kolom E verwijdert, maar dan zonder het gebruiken van de macrorecorder.

Kortom: als je weet welke kolom je wilt verwijderen, gebruik dan de laatste methode
DiGro

----------------------------------------------------
Windows 11 en AOO 4.1.15
Gescand door Ziggo Safe Online (F-Secure)
Plaats reactie