|
Microsoft Office Application Development
|
|
Cellen zoeken op basis van een eigenschap met de CallByName functieInleidingIn dit artikel wordt een functie beschreven waaraan een Range object, een string met de gewenste eigenschap en de waarde van die eigenschap wordt doorgegeven, welke vervolgens als resultaat een object geeft waarin alle cellen zitten die aan de criteria voldoen. CallByNameOm de CallByName methode (geintroduceerd met Office 2000) eens uit te proberen is deze in deze functie toegepast. Volgens het Help bestand van Office XP VBA: CallByName FunctieVoert een methode van een object uit, stelt een eigenschap van een object in of geeft die eigenschap als resultaat. Syntaxis CallByName(object, procnaam, calltype,[args()]) De syntaxis van de functie CallByName kent de volgende benoemde argumenten:
Stel dat de vulkleur van een cel moet worden opgevraagd: Sub test() Om deze methode algemener te krijgen, zou het het eenvoudigst zijn, om slechts het Cel object te gebruiken en de gehele "procnaam" als een string: Sub test() Helaas werkt dit niet. Het argument "procnaam" mag slechts 1 entiteit bevatten (Property, Method of Object). Het is dus nodig om deze string op te splitsen in haar individuele elementen. Zoiets als dit (opm.: Excel 97 kent de functie niet, noch de CallByName function): Dim lProps As Long Dus om de colorindex eigenschap van het Interior object van het Cel object te verkrijgen, moet er door de variant vProps gestapt worden: For lCount = 0 To lProps - 1 De lus wordt gestopt bij het één-na-laatste element van vProps, omdat alle elementen behalve het laatste objecten zullen zijn en het laatste de eigenschap die gezocht wordt. In de volgende stap wordt deze eigenschap gelezen: CallByName(oTemp, vProps(lProps), VbGet) De volledige functie is hieronder weergegeven: Function FindCells(ByRef oRange As Range, ByVal sProperties As String, _ Een klein voorbeeld hoe deze functie te gebruiken, selecteer alle cellen met een witte vulkleur: Sub UseFindCellsExample() CommentaarNu je het einde van dit artikel hebt bereikt, zou ik om je mening willen vragen. Wat vond je ervan? Klik hier om mij een mailtje te sturen met je opmerkingen en suggesties. | ||||||||||||||||||||||||
|
Use the contact page to issue
questions or comments about this website. |