Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Cortana per VBA starten

Cortana per VBA starten
14.07.2021 01:16:42
stefan
Hallo liebe Excelprofis,
könnte mal eure Hilfe gebrauchen.
Mit der Windows + H Taste kann man mit Cortana Texte in Excel sprechen und in eine Zelle eintragen lassen.
Das möchte ich in meinem Programm versuchen zu verwenden.
Ich möchte über ein Makro die Windows Spracheingabe starten.

Sub Cortana()
Dim x As Variant
'x = Shell("calc.exe") 'Test mit Taschenrechner war erfolgreich
'x = Shell("cortana.exe")  'Versuch 1 geht nicht
x = Shell("SearchUI.exe") 'Versuch 2 geht auch nicht
End 

Sub
Beim Taschenrechner funktioniert es. Bei der Sprachsteuerung leider nicht.
Habs auch schon mit Application.OnKey versucht, leider gibt es da die Windowstaste nicht. (Mit Windows + H  kann man Cortana starten)
Kennt jemand die Möglichkeit wie man die Sprachsteuerung per VBA starten kann?
Gruß
Stefan


		
Anzeige

19
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Cortana per VBA starten
14.07.2021 19:39:13
ChrisL
Hi
Ich denke Cortana läuft bereits ("hey Cortana" aktiviert mit entsprechender Einstellung die App). Somit geht es nur darum die App "aufzuwecken" und nicht wie beim Taschenrechner darum die App zu starten.
Hiernach gibt es kein DOS-Kommando, um die App zu aktivieren:
https://answers.microsoft.com/en-us/windows/forum/all/how-to-launch-load-coratna-from-the-dos-command/42165f16-0e18-4a9a-846f-67432956714c
Was du mal versuchen könntest mit Sendkeys:
Ctrl+Esc (=Windows Start)
Cortana tippen
Enter
cu
Chris
Anzeige
AW: Cortana per VBA starten
14.07.2021 20:05:19
stef26
Hallo danke für die Rückmeldung.
Das mit den SendKey wäre noch eine Möglichkeit.
Kennst du dich damit aus?
Wie bekomme ich die Tastenkombi Windowstaste und H Taste zusammen gedrückt in VBA Code geschrieben?
Hab nur festgestellt, dass CTRL+ESC +H komischerweise nicht Cortana aufruft, oder besser gesagt aufweckt, wie du es vermutlich richtigerweise geschrieben hast.
Also muss es noch einen Unterschied zwischen der Windowstaste+ H und CTRL+ESC+H geben...
Gruß
Stefan
Anzeige
AW: Cortana per VBA starten
15.07.2021 08:33:55
ChrisL
Hi
Ctrl+Esc geht scheinbar nicht bzw. das Start Menü schliesst sich sofort wieder.
Somit kann ich dir auch keine Lösung bieten.
cu
Chris
AW: Cortana per VBA starten
15.07.2021 08:52:23
Daniel
Windows Taste
Zwischenrein mit SendKeys dann H aufrufen
Zunächst:

Private Declare Sub keybd_event Lib "user32" ( _
ByVal bVk As Byte, _
ByVal bScan As Byte, _
ByVal dwFlags As Long, _
ByVal dwExtraInfo As Long)
Dann dadrunter:

Const KEYEVENTF_KEYUP = &H2
Const VK_LWIN = &H5B
Aufruf:

Call keybd_event(VK_LWIN, 0, 0, 0) 'Windows Taste
' hierhin kommt die Sendkey Anweisung
Call keybd_event(VK_LWIN, 0, KEYEVENTF_KEYUP, 0)

Anzeige
AW: Cortana per VBA starten
15.07.2021 09:25:38
stef26
Hallo Daniel,
danke für die Rückmeldung.
Ich habs jetzt so probiert wie du das hoffentlich gedacht hast.
Private Declare

Sub keybd_event Lib "user32" ( _
ByVal bVk As Byte, _
ByVal bScan As Byte, _
ByVal dwFlags As Long, _
ByVal dwExtraInfo As Long)
Const KEYEVENTF_KEYUP = &H2
Const VK_LWIN = &H5B

Sub Aufruf()
Set Keys = CreateObject("WScript.Shell")
Call keybd_event(VK_LWIN, 0, 0, 0) 'Windows Taste
' hierhin kommt die Sendkey Anweisung
Keys.SendKeys "H"
Call keybd_event(VK_LWIN, 0, KEYEVENTF_KEYUP, 0)
End Sub
Leider öffnet er trotzdem nicht das "Diktieren".
Ich vermute mal das dies auch wieder nacheinander macht, da nur das H in der aktiven Zelle erscheint.
Nimm ich das "H" raus bleibt das Windows Fenster geöffnet.
Hmm?
Gruß
Stefan
Anzeige
AW: Cortana per VBA starten
15.07.2021 13:28:39
ChrisL
Hi
Mit Cortana kann ich es nicht testen, aber in etwa so hätte ich es mir vorgestellt:

Private Declare Sub keybd_event Lib "user32" ( _
ByVal bVk As Byte, _
ByVal bScan As Byte, _
ByVal dwFlags As Long, _
ByVal dwExtraInfo As Long)

Const KEYEVENTF_KEYUP = &H2
Const VK_LWIN = &H5B

Sub Aufruf()
Call keybd_event(VK_LWIN, 0, 0, 0) 'Windows Taste
Call keybd_event(VK_LWIN, 0, KEYEVENTF_KEYUP, 0)
Application.Wait (Now + TimeValue("0:00:01"))
Application.SendKeys "Rechner"
Application.Wait (Now + TimeValue("0:00:01"))
Application.SendKeys "{RETURN}"
End Sub
cu
Chris
Anzeige
AW: Diktieren per VBA starten
15.07.2021 14:57:56
stef26
Hallo ChrisL,
danke für deine Hilfestellungen. Du hast recht nun macht er die Tastenkombination nicht mehr nacheinander sondern wirklich miteinander!
Schon einen wichtigen Schritt weiter danke dafür.
Ich habe den "Rechner" durch "H" ersetzt, da er mir mit dieser Kombi das Diktiergerät aufmacht.
Allerdings startet er nicht das Diktieren, sondern öffnet mir die Einstellungen für Helligkeit des Rechners auf.
Wenn ich per Hand die Tastenkombi WIN+H mache, dann öffnet mein Rechner das Diktieren
(So wie es auch unter:
https://support.microsoft.com/de-de/windows/tastenkombinationen-in-windows-dcc61a57-8ff0-cffe-9796-cb9706c75eec
beschieben ist.)
Da die Tastenkombi nun geht, stellt sich für mich die Frage, ob es da einen Unterschied zwischen
STRG + ESC und der WIN Taste gibt.
Denn mit SRTG+ESC + H komme ich auch manuell in die Einstellungen für Helligkeit.
Mit Windows + H komme ich auf diktieren.
Also sieht es so aus, als würde die Tastenkombi STRG+ESC zwar das WIN Fenster öffnen aber in der Tastenkombi nicht identisch mit der WIN Taste sein.
Hmm
Hab auch schon gegoogelt. Die Tastenkombinationen lassen sich unter Windows leider nicht anpassen.
D.h. ich bräuchte da vermutlich die "wirkliche" Windowstaste und nicht die Kombi aus STRG und ESC....
Gruß
Stefan
Anzeige
AW: Diktieren per VBA starten
15.07.2021 16:23:35
ChrisL
Hi Stefan
Ich denke du musst dich von der Vorstellung lösen, dass Ctrl+Esc (bzw. die API) der Windows-Taste entspricht. Damit drückst du lediglich die Windows-Start Taste links unten. Danach muss ein eindeutiger Suchbegriff ins Feld eingegeben werden und diejenige App, welche zuoberst im Suchresultat erscheint wird mit Enter bestätigt.
Den richtigen Suchbegriff kann ich dir leider nicht nennen, weil ich die App nicht verwende. Aber wie erwähnt, mein Vorschlag hat ganz und gar nichts mit Win+H zu tun.
Userbild
cu
Chris
Anzeige
AW: Diktieren per VBA starten
15.07.2021 17:08:49
stef26
Hi,
ja das glaube ich auch.
Ich muss mich auch selber korrigieren. Ich habe am Anfang von Cortana geschieben.
So viel ich jetzt weiß hat die Diktierfunktion unter WIN10 nichts mit cortana zu tun.
Die ist standardmäßig enthalten und für den der die schon mal getestet hat nicht mehr weg zu denken.
Das heißt ich suche nach der Funktion für diese doofe WIN Taste, oder eine andere Möglichkeit, wie man das Programm öffnen kann.
Ich hab auch im Internet schon gegoogelt wie man das ohne Tastenkombi öffnen kann, dann würde man das auch hin bekommen, hab aber immer nur gefunden das man diese mit WIN +H öffnet.
Im Task Manager kann man auch nicht erkennen, was da mit WIN+H geöffnet wurde.
Vielleicht kenn jemand eine andere Möglichkeit dieses Programm zu öffnen?
Gruß
Stefan
Anzeige
AW: Diktieren per VBA starten
15.07.2021 17:28:43
ChrisL
Hi
Ich weiss halt leider auch nicht, wie das Teil bei dir im Windows Start heisst. "Spracherkennung starten" oder "Spracherkennung aktivieren" oder "Windows-Spracherkennung" oder "Diktat" oder weiss der Geier...
Einfach mal in deinem Startmenü den richtigen Begriff ermitteln und in das gezeigte Marko einsetzen (anstelle von "Rechner").
Userbild
cu
Chris
Anzeige
AW: Diktieren per VBA starten
15.07.2021 20:01:46
stef26
Hallo Zusammen,
vielen Dank an alle die sich an dem Thema beteiligt haben.
Ich werde wohl oder übel das Thema ergebnislos schließen müssen.
Lt. WIN Hotline kann man das Diktieren nur über diese Tastenkombi öffnen.
Es ist also nicht möglich dies über die Suchfunktion zu finden.
Die Hotline hat mir noch den Hinweis gegeben, dass sich jede Tastenkombination mit einem speziellen Tool (PowerToys) ändern lassen.
Auch das hab ich gemacht. Und? Na verdammt, auch da ist es die einzige Kombination zu sein, die sich nicht verändern lässt.
Somit bleibt nur die Orginaltaste WIN(left) zu drücken. Dafür gibt es aber so wie es aussieht keinen Code.
Schade ich hätte das zu gerne hin bekommen.
Liebe Grüße
Stefan :-(
Anzeige
AW: Cortana per VBA starten
14.07.2021 19:42:25
stef26
Hallo Zusammen,
ich habe mal ein Beispiel reingestellt, dem sehr nahe kommt, was ich möchte.
Problem an der Datei ist, dass die Spracherkennung (zu minderst auf meinem Rechner) nicht zu gebrauchen ist.
Ich würde auch gerne den Start und das Ende der Aufnahme über das Makro steuern können.
https://www.herber.de/bbs/user/147120.xlsm
Deshalb würde ich das so in der Art mit cortana statt mit der Windows Spracherkennung machen wollen.
Vielleicht hilft das noch weiter um auf eine Lösung zu kommen.
Ich hab im ganzen Netz nichts gefunden, was mich weiter bringen würde.
Gruß
Stefan
Anzeige
Wozu?
14.07.2021 19:43:17
Yal
Hallo Stefan,
Programmier sind faule Sau, die nicht gern 20 Zeichen selber tippen, wenn eine Makro das für sie machen kann. Auch wenn die Makro-Herstellung das Eintippen von 200 Zeichen verlangt.
Nun, Makros sind da, um Sachen zu automatisieren, also um den Eingriff eines Menschen zu vermeiden. Daher die Frage: wozu soll es eine Automatisierung (=Makro) sinnvoll sein, ein Cortana aufzurufen, dass eine Menschen-Interaktion verlangt?
Wenn WinTaste+H Cortana aufruft, scheint es mir schwer kürzer zu machen.
http://theprogrammersparadox.blogspot.com/2011/03/how-to-waste-your-time-while.html
VG
Yal
Anzeige
AW: Wozu?
14.07.2021 20:00:39
stef26
Hallo Yal,
das ist einfach erklärt. Da ich bei der Ausführung des Programmes nicht an der Tastatur bin.
Ich lasse mich von meinen Vokabeln die ich lernen muss verbunden mit meinem TV Gerät abfragen.
Nun versuche ich meine Aussprache da ins Programm zu bekommen um eine Bewertung machen zu können.
Da die Vokabeln die ich kann nicht mehr abgefragt werden. Und ich brauche nur bestimmte eigene spezifisch Vokabeln für meine Arbeit dich ich lernen muss, deshalb auch das eigene Programm.
Deshalb werde ich mal den Weg über SendKey mal versuchen den ChisL vorgeschlagen hat.
Leider hab ich auch da keinerlei Erfahrung....
Gruß Stefan
Anzeige
Sendkey
14.07.2021 20:07:53
stef26
Ok zudem bin ich noch ein Spielkind, das gerne Sachen austestet.
Also wer sich zufällig mit SENDKEY auskennt, der könnte mir hier einen Tip geben, wie ich Windowstaste+H in den Code geschrieben bekomme...
:-)
Stefan
AW: Sendkey
14.07.2021 22:52:34
Yal
Hallo Stefan,
einfach SendKeys in VB-Editor tippen, Cursor drauf legen und Strg+F1 drucken, schon kommst Du auf diese Seite:
https://docs.microsoft.com/de-de/office/vba/language/reference/user-interface-help/sendkeys-statement
(Anwendungsbeispiel ganz unten)
Leider scheint dort die Windows-Taste nicht abgebildet zu sein. Aber Gidf:
https://www.google.com/search?q=vba+sendkeys+windows+key
^{ESC}
soll die Antwort sein.
VG
Yal
Anzeige
AW: Sendkey
15.07.2021 06:35:32
stef26
Hallo,
ich habe alles mögliche schon getestet mit sendkey. Bin aber noch immer nicht auf die Lösung gekommen.

Sub test()
Set Keys = CreateObject("WScript.Shell")
Keys.SendKeys "^{ESC}"
Keys.SendKeys "H"
End Sub
Wie du schon richtig geschrieben hast, kann man mit ^{ESC} die Windowstaste simulieren. Es geht auch das Windows Menü auf.
Die Frage ist wie ich das in Kombination mit der H Taste hin bekomme, damit das Diktiergerät aufgeht.
Hänge ich das H dahinter, dann ignoriert er mir die Windowstaste.
Schreibe ich das H dahinter schreibt er mit nur H in die aktuelle Zelle die markiert ist.
Leider hab ich immer noch nicht die Kombination aus Beiden hin bekommen.
Hat jemand noch ne Idee?
Gruß
Stefan
Anzeige
AW: Sendkey
15.07.2021 09:52:26
Yal
Hallo Stefan,
das wichtigste war "Anwendungsbeispiel ganz unten"

Sub test()
Set Keys = CreateObject("WScript.Shell")
AppActivate Keys
SendKeys "^{ESC}", "H"
End Sub
(ungetestet, und sowieso ausserhalb meines Kompetenzbereichs ;-)
VG
Yal
Anzeige
AW: Sendkey
15.07.2021 11:13:31
stef26
Hallo Yal,
geht so leider auch nicht...
Gruß
Stefan
;
Anzeige
Anzeige

Infobox / Tutorial

Cortana in Excel per VBA aktivieren


Schritt-für-Schritt-Anleitung

Um Cortana in Excel zu aktivieren und die Spracheingabe zu nutzen, kannst Du ein VBA-Skript verwenden. Hier folgt eine einfache Anleitung:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein neues Modul hinzu, indem Du mit der rechten Maustaste auf "VBAProject (DeinDateiname)" klickst und "Einfügen" > "Modul" wählst.

  3. Kopiere den folgenden Code in das Modul:

    Private Declare Sub keybd_event Lib "user32" ( _
       ByVal bVk As Byte, _
       ByVal bScan As Byte, _
       ByVal dwFlags As Long, _
       ByVal dwExtraInfo As Long)
    
    Const KEYEVENTF_KEYUP = &H2
    Const VK_LWIN = &H5B
    
    Sub CortanaAktivieren()
       Call keybd_event(VK_LWIN, 0, 0, 0) ' Windows Taste drücken
       Application.Wait (Now + TimeValue("0:00:01")) ' Warte 1 Sekunde
       SendKeys "h" ' H für Diktierfunktion
       Call keybd_event(VK_LWIN, 0, KEYEVENTF_KEYUP, 0) ' Windows Taste loslassen
    End Sub
  4. Schließe den VBA-Editor und gehe zurück zu Excel.

  5. Um das Skript auszuführen, drücke ALT + F8, wähle "CortanaAktivieren" und klicke auf "Ausführen".

Mit diesem Makro solltest Du in Excel diktieren können, indem Du die Sprachsteuerung via Cortana startest.


Häufige Fehler und Lösungen

  • Problem: Cortana öffnet nicht.

    • Lösung: Stelle sicher, dass Cortana auf Deinem PC aktiviert ist. Gehe zu den Windows-Einstellungen und aktiviere Cortana, falls dies noch nicht geschehen ist.
  • Problem: Das Diktieren funktioniert nicht.

    • Lösung: Überprüfe die Eingabeeinstellungen in Windows und stelle sicher, dass die Spracheingabe aktiviert ist.
  • Problem: SendKeys funktioniert nicht wie erwartet.

    • Lösung: Manchmal kann die Reihenfolge oder der Zeitabstand zwischen den Tastenanschlägen entscheidend sein. Erhöhe die Wartezeit zwischen den Tastenanschlägen.

Alternative Methoden

Falls Du Probleme mit VBA hast, gibt es auch andere Wege, die Spracheingabe in Excel zu aktivieren:

  1. Windows Spracheingabe aktivieren:

    • Drücke Windows + H, um die Spracheingabe direkt zu aktivieren.
  2. Cortana manuell starten:

    • Du kannst Cortana auch direkt aus dem Startmenü starten, indem Du nach "Cortana" suchst und sie öffnest. Danach kannst Du die Sprachsteuerung verwenden.

Praktische Beispiele

Um die Diktierfunktion in Excel zu verwenden, kannst Du folgendes Beispiel nutzen:

  1. Erstelle eine neue Excel-Datei.
  2. Füge in eine Zelle den Text "Diktieren in Excel" ein.
  3. Starte die Diktierfunktion mit dem oben genannten VBA-Skript und beginne, mit Cortana zu sprechen.

Das Ergebnis wird direkt in die ausgewählte Zelle eingetragen.


Tipps für Profis

  • Sprachbefehle: Nutze präzise Sprachbefehle, um die besten Ergebnisse zu erzielen. Klare und deutliche Aussprache verbessert die Erkennung.
  • Makros anpassen: Du kannst das VBA-Skript anpassen, um zusätzliche Funktionen hinzuzufügen, wie beispielsweise das Stoppen der Spracheingabe.
  • Häufige Verwendung: Wenn Du regelmäßig mit Excel diktierst, erwäge, das Skript einer Tastenkombination zuzuweisen, um den Prozess zu beschleunigen.

FAQ: Häufige Fragen

1. Wie aktiviere ich die Spracheingabe in Excel?
Du kannst die Spracheingabe aktivieren, indem Du das VBA-Skript ausführst, das die Cortana-Funktion startet. Alternativ kannst Du Windows + H drücken.

2. Funktioniert das Diktieren in Excel auch auf anderen Windows-Versionen?
Die Spracheingabe funktioniert am besten unter Windows 10 und neuer. Stelle sicher, dass Cortana und die Spracheingabe aktiviert sind.

3. Warum funktioniert die Tastenkombination nicht?
Es könnte sein, dass die Windows-Taste oder die H-Taste von einer anderen Anwendung blockiert wird. Überprüfe, ob andere Programme im Hintergrund laufen, die Tasteneingaben abfangen könnten.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige