VBA SendKeys
Η μέθοδος VBA SendKeys χρησιμοποιείται για την αποστολή πληκτρολογίων στην ενεργή εφαρμογή:
1 | Application.SendKeys ("s") |
Ο παραπάνω κώδικας μιμείται το πάτημα του πλήκτρου "s" στο πληκτρολόγιο.
Η μέθοδος SendKeys λαμβάνει δύο ορίσματα:
- Κλειδιά - Τα κλειδιά που θέλετε να στείλετε στην εφαρμογή ως κείμενο.
- Περίμενε (Προαιρετικός)- Αυτή η τιμή μπορεί να είναι Σωστή ή Λάθος. Εάν είναι True, τότε το Excel περιμένει την επεξεργασία των κλειδιών πρώτα πριν εκτελέσει την επόμενη γραμμή κώδικα. Εάν είναι False, τότε το Excel συνεχίζει να εκτελεί τη διαδικασία χωρίς να περιμένει την επεξεργασία των κλειδιών.
Το SendKeys χρησιμοποιείται συνήθως κατά την αλληλεπίδραση με άλλες εφαρμογές, επειδή είναι ένας γρήγορος και εύκολος τρόπος για την εκτέλεση εργασιών. Για παράδειγμα, μπορείτε να χρησιμοποιήσετε SendKeys όταν αυτοματοποιείτε τον Internet Explorer.
Ωστόσο, θα πρέπει να είστε εξαιρετικά προσεκτικοί όταν χρησιμοποιείτε τη μέθοδο SendKeys, καθώς μπορεί να έχει απροσδόκητα αποτελέσματα. Συνιστούμε τη χρήση των SendKeys μόνο ως έσχατη λύση και/ή όταν τα λάθη είναι ανεκτά (ή εύκολα ανιχνεύσιμα).
Παραδείγματα VBA SendKeys
Κάθε κλειδί ως προς τα γράμματα αντιπροσωπεύεται από τον χαρακτήρα του, για παράδειγμα a είναι "a".
Εάν θέλετε να χρησιμοποιήσετε κλειδιά σε συνδυασμό με Ctrl, Shift ή Alt, πρέπει να προηγείτε τον κωδικό κλειδιού με τα ακόλουθα:
Κλειδί | Κώδικας |
---|---|
Ctrl | ^ |
Μετατόπιση | + |
Alt | % |
Ο ακόλουθος κώδικας χρησιμοποιεί τη μέθοδο SendKeys για να αποθηκεύσει το βιβλίο εργασίας:
12345 | Sub UsingSendKeys ()Application.SendKeys ("^s")Τέλος υπο |
Όπως αναφέραμε και πριν, πρέπει να είστε εξαιρετικά προσεκτικοί όταν χρησιμοποιείτε SendKeys. Ο ακόλουθος κώδικας καθορίζει χρόνο αναμονής 10 δευτερολέπτων πριν από την εισαγωγή/αποστολή του κειμένου στο Σημειωματάριο. Περιμένοντας 10 δευτερόλεπτα, επιτρέπετε στο Σημειωματάριο να ανοίξει σωστά, μειώνοντας την πιθανότητα σφάλματος.
Σημείωση: Αυτός ο κώδικας χρησιμοποιεί την εφαρμογή. Μέθοδος αναμονής.
1234567 | Sub UsingSendKeysWithWait ()Call Shell ("C: \ Windows \ system32 \ Notepad.Exe", vbNormalFocus)Application.Wait (Now () + TimeValue ("00:00:10"))Καλέστε SendKeys ("This is Some Text", True)Τέλος υπο |
Το αποτέλεσμα μετά από 10 δευτερόλεπτα χρόνου αναμονής είναι:
Τα SendKeys μπορούν να είναι ένας εξαιρετικά γρήγορος και εύκολος τρόπος για την εκπλήρωση εργασιών. Ωστόσο, ο κίνδυνος σφάλματος είναι σχετικά υψηλός. Χρησιμοποιήστε SendKeys μόνο όταν αυτός ο κίνδυνος είναι αποδεκτός!