Na veel onderzoek en testen lukt het me niet om een sneltoets te maken om een cmdbutton in een UserForm te activeren. Ik heb verschillende benaderingen geprobeerd, de laatste was deze:
Privé Sub UserForm_Initialize() Me.KeyPreview = Waar Einde Sub
Private Sub UserForm1_KeyDown (ByVal KeyCode als MSForms.ReturnInteger, ByVal Shift als geheel getal) Als KeyCode = vbKeyF4 dan Bel cmdButton_1_Click Einde als Einde Sub
Ik heb ook het commando getest: Application.OnKey, maar niets helpt!
Idealiter zou de snelkoppeling een cmdknop moeten activeren zonder dat de userform de brandpuntsafstand heeft. Ik moet erop wijzen dat ik bezig ben met SW 2010. Er kunnen compatibiliteitsproblemen zijn...
Als je ooit met het probleem te maken hebt gehad en de juiste bedieningselementen kent, zou ik dat op prijs stellen.
De enige manier die ik heb gevonden om het te laten werken, is door de knop in te stellen op Inschakelen = Onwaar. De regel bij de initialisatie van het UserForm is naar mijn mening niet nodig. En ik moest dit veranderen:
Private Sub UserForm1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
Bij:
Private Sub UserForm_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
Is er nog iets anders dan deze knop op het gebruikersformulier?
Is het niet mogelijk om de macro te maken die is gewijd aan de automatische uitvoering van de functie die door de genoemde knop wordt gestart, en vervolgens een snelkoppeling toe te wijzen aan de macroknop op de werkbalk?
Met andere woorden, een sneltoets start de macro, die de functie start en sluit voor de volgende keer dat u op de sneltoetsen drukt.
Dank u voor uw antwoorden. Ik zal het morgen proberen. Sylk, ja, ik heb een twintigtal knoppen op mijn UF. Het idee is om ze allemaal in te stellen door ze snelkoppelingen toe te wijzen.
Mijn UF heeft al een snelkoppeling, maar omwille van de efficiëntie zou ik graag willen dat de ongeveer twintig knoppen worden geconfigureerd.
We zijn met een tiental mensen die macro's gebruiken, die op de server staan. Mijn eerste idee was om ze afzonderlijk in een tabblad onder SW in te voegen; Achteraf realiseerde ik me hoe vervelend de update voor iedereen zou zijn als er een wijziging in de macro('s) zou plaatsvinden of als een map zijn naam of locatie zou veranderen. De UF leek mij de beste oplossing om vloeibaarheid en eenvoud te garanderen in de hierboven genoemde gevallen. Dat gezegd hebbende, als ik een " techniek " heb gemist en de UF niet verplicht is, sta ik tot uw beschikking.
Voor de update is het niet zo beperkend. Thuis heb ik een hele reeks macro's ontwikkeld die worden gestart door op een pictogram naast de opslagpictogrammen te drukken, terug te gaan... SW basis basis. Aangezien we de globale configuratie beheren en een configuratiebestand genereren dat door iedereen wordt gebruikt (sldreg), kan het bijwerken van de macrolinks eenvoudig worden gedaan (maar als we de paden en methoden die vast worden genoemd, kunnen laten, is het altijd beter). Dan hoef je voor de code-update alleen maar een moment te vinden waarop niemand SW open heeft staan om de inhoud bij te werken en nieuwe functies of bugfixes te implementeren. Vergeet niet om macro's alleen-lezen te maken en hun inhoud te vergrendelen met een wachtwoord om manipulatie door mensen die er niets van weten te voorkomen (ik heb al macro's van hun inhoud laten ontdoen, gelukkig had ik elders back-ups). Het idee van @Sylk is goed, maar het vereist dat gebruikers goed op de hoogte zijn van de functies die aan elke sneltoets zijn gekoppeld.
Dus voor één keer is de duidelijkheid van de bijbehorende functies en snelkoppelingen precies een troef van deze methode: Een expliciet pictogram en knopinfo met titel, snelkoppeling en beschrijving. Het is moeilijk om het duidelijker te maken voor de gebruiker.
Voor mij gaat er niets boven een persoonlijke werkbalk met een knop voor elke functie gekoppeld aan een knop in het gebruikersformulier. Je kunt het open en binnen handbereik laten, of het verbergen (om snelkoppelingen " native geïntegreerd" en onzichtbaar te maken. De werkbalken zijn overdraagbaar met SW-instellingen, dus het is vrij eenvoudig te implementeren.
Het enige nadeel, wetende dat de macro na elke uitvoering van de functie sluit, is misschien als sommige variabele waarden moeten blijven bestaan tussen 2 functies...
Ik zit op één lijn, maar vanuit het zicht van gebruikers thuis kan ik zeggen dat zelfs een tooltip hun " competentie " te boven gaat. Kortom, ze moeten zich verwaardigen om over de beschikbare pictogrammen te bladeren en niet alleen SW20xx te gebruiken zoals we SW9x gebruikten (95/98/99)
Hallo; Het is mogelijk om één (of meerdere) complete en configureerbare toolbar aan te maken om te delen op al je Solidworks werkstations (via de add-ins):
Deze werkbalk heeft ook het voordeel dat hij de toegang tot knoppen/macro's al dan niet kan activeren, afhankelijk van de werkomgeving (als u in een assemblage werkt, is het niet nodig om macro's te kunnen gebruiken die specifiek zijn voor tekeningen...). Het nadeel is dat je gepersonaliseerde en leesbare pictogrammen moet maken, maar het is nog steeds overkomelijk. Opmerking: De versie die we op onze werkstations gebruiken, is de bètaversie (destijds " MyToolbar " genoemd). Ik heb de " Toolbar+ " -versie die wordt aangeboden in het " Cad+ " -pakket niet getest...
Het is goed omdat je hiermee individuele snelkoppelingen kunt toewijzen, Als er een wijziging is in de meerdere macro's, is het echter nodig om de link bij te werken, voor elke gewijzigde macro en voor elke gebruiker. Inderdaad, Cyril_f, voor de update, zou elke gebruiker SW gesloten moeten hebben, om het te hebben getest, is het beperkend. Bovendien kunnen er, naast de wijzigingen die in de macro's zijn aangebracht, wijzigingen zijn in de locatie van bestanden of wijzigingen in de namen van mappen. Ik had, zoals u suggereerde, al getest Cyril_f een .sldreg te registreren die een snelle update mogelijk zou maken. Maar dit bleek in onze situatie niet effectief. Het idee van de USF was toen om maar één verandering aan te brengen. Eenvoudiger voor gebruikers. Om verder te gaan, het idee om een batch op de desktops van gebruikers te laten vallen waarmee het bijgewerkte macrobestand lokaal op de server kan worden gekopieerd en geplakt; Dit is om het reactievermogen van macro's aanzienlijk te vergroten.
Maar ik kom altijd terug op mijn probleem van snelkoppelingen die rechtstreeks in de code zijn geschreven, geen enkele syntaxis geprobeerd lijkt te werken! Cyril_f, ik had UserForm1 geschreven omdat het logischerwijs, met 2 USF's in mijn project, me relevant leek om het te benoemen. Heb ik het mis?
Nee. Het enige wat u hoeft te doen is alle functies te integreren in een enkele macro (een veelvoorkomende) en de functie te kiezen (genaamd " Methode ") die voor elke knop is bedoeld. Als u de macro bijwerkt, hebben alle updates invloed zolang u de naam van de functies die door de knoppen worden aangeroepen niet wijzigt. De update van de werkbalk bij de gebruiker thuis is alleen nuttig voor het toevoegen van nieuwe knoppen/functies.
Dit is het hele punt van de werkbalk die ik hierboven voorstel. Dit laatste moet zich op een gedeelde server bevinden, de verschillende macro's die eraan zijn gekoppeld hebben de vorm van links (locatie van de macro's) en in het geval van updates of toevoeging van functies, wordt het de volgende keer dat Solidworks wordt opgestart automatisch opnieuw geladen voor alle gebruikers.
Anders is er het hulpprogramma CustomToolbar waarmee u ook een werkbalk met snelkoppelingen naar macro kunt toevoegen. Ik configureer deze balk op mijn computer en dan heb ik een vleermuisbestand waarmee ik kan propageren op de computer van waaruit het vleermuisbestand wordt gestart. Een beat-bestand om een back-up te maken van de lokale bestanden op de server en een bestand herstelt de lokale bestanden door een back-up van de server te maken. Dit stelt me in staat om snel verbeteringen door te voeren met nieuwe macro's voor iedereen. Vroeger ging ik door dezelfde werkbalk @maclane (maar de IT-afdeling had de installatie van software geblokkeerd van een bron die niet bekend genoeg was!) Om de code van het bat-bestand van het netwerk naar het lokale netwerk te kopiëren:
Edit: Ik heb zojuist een ontwikkelingsverzoek ingediend via Visiativ om een netwerkback-uppad te hebben en te herstellen via een back-upbestand, voor dit hulpprogramma.
Hetzelfde @Maclane , Ik heb een nieuw verzoek ingediend voordat ik de bewerking schreef. Door onze verzoeken te groeperen, kan het slagen! En als @fmarchand bijvoorbeeld de aanvraag kan ondersteunen, zou dat nog beter zijn! Voorbeeld van de concurrerende software, die mij op dit punt geweldig lijkt:
Dank u allen voor uw bijdragen. Ik heb geprobeerd ToolBar te installeren, helaas werkt het niet op de 2010-versie van SW.
Omdat ik echt gehecht ben aan de USF (gebruikers zijn eraan gewend en waarderen het gebruik ervan) blijf ik, ondanks uw voorstellen, zonder oplossing. De verschillende oplossingen voor het direct toewijzen van snelkoppelingen in de code lijken niet te werken. Heb ik een stap gemist? Moet er een aanpassing worden gedaan zodat het de ingedrukte toetsen detecteert? Hebben jullie nog andere syntaxen op voorraad?