it-swarm.com.de

So erstellen Sie benutzerdefinierte Tastenkombinationen für Google App-Skriptfunktionen

Ich versuche zu verstehen, wie sinnvoll es ist, einige meiner Microsoft Excel-Tabellen durch Google Doc-Tabellen zu ersetzen. Wie kann ich eine benutzerdefinierte Tastenkombination für eine Google-App-Skriptfunktion in einer Google-Docs-Tabelle erstellen? Das mache ich normalerweise mit VBA und Excel.

43
User

Das Anwendungsskript macht nur serverseitige Ereignisse verfügbar . Leider können Sie heute keine clientseitigen Ereignisse wie Tastaturanschläge registrieren. Bitte loggen Sie ein Problem in unserem Issue Tracker

19
Arun Nagarajan

Dies wird jetzt in Sheets (siehe https://issuetracker.google.com/issues/36752620 ) unterstützt, aber noch nicht in Docs. Siehe und Stern https://issuetracker.google.com/issues/36752620 für Unterstützung für Docs

10
studgeek

Vor kurzem (April 2018) hat Google einen Makro-Recorder eingeführt, der eine Möglichkeit zum Zuweisen einer Tastenkombination zum Auslösen eines Makros sowie eine Möglichkeit zum Importieren vorhandener Skripts als Makros enthält. Siehe Google Sheets-Makros

HINWEIS: Diese Funktion wird derzeit eingeführt, daher kann es einige Wochen dauern, bis sie für alle verfügbar ist. In meinem Fall war es zuerst in meinem persönlichen Google-Konto verfügbar und seit gestern in einem meiner G Suite-Konten.

9
Rubén

Eine Lösung wurde in Ausgabe 306 veröffentlicht! Für die Faulen ist es hier:

Der neue IFRAME-Modus in HtmlService ermöglicht die Weitergabe von Schlüsselcodes an Add-Ons ...

$(document).keydown(function(e){
  //CTRL + V keydown combo
  if(e.ctrlKey && e.keyCode == 86){
    $( '#output' ).html("I've been pressed!");
  }
})

Dafür muss zuerst die Seitenleiste angeklickt/aktiviert werden.

5
John Targaryen

Es ist jetzt nur noch eine Aktualisierung möglich. Es ist jetzt möglich, die Problemumgehung zu umgehen, die The Guy erwähnt. Mit IFRAME können Sie eine Sidebar und eine STUB erstellen, um nur Tastaturbefehle einzugeben, sie mit jquery zu behandeln und die entsprechende Funktion auszuführen, die bereits verwendet wurde.

2
Kriggs

Tolle Neuigkeiten :) Mit den folgenden einfachen Schritten können Sie benutzerdefinierte Tastenkombinationen für die Google-App-Skriptfunktionen erstellen:

  1. Wählen Sie in der Google Sheets-Benutzeroberfläche Tools> Macros> Record Macro aus.
  2. Zeichnen Sie jede Aktion auf. Ändern Sie beispielsweise den Farbhintergrund in A1. Drücken Sie Speichern.
  3. Speichern Sie es mit einem zufälligen Titel und der bevorzugten Verknüpfung. Sie können es später ändern.
  4. Wählen Sie Tools> Skripteditor aus, um das an das Blatt gebundene Skript im Apps-Skripteditor zu öffnen.
  5. Wählen Sie auf der neuen Editor-Registerkarte Ansicht> Manifestdatei anzeigen.
  6. TA - DÁ! : D Ändern Sie den Wert von functionName in den gewünschten Wert;)

Denken Sie daran, dass Makrofunktionen keine Argumente annehmen und keine Werte zurückgeben sollen. Weitere Informationen unter https://developers.google.com/apps-script/guides/sheets/macros#importing_functions_as_macros

2
urpi5

Um dies zu umgehen, können Sie beispielsweise eine Spalte für "Auslösetext" verwenden, für jede Aktion, die Sie ausführen möchten, unterschiedliche textbasierte Auslöser definieren und anschließend eine Funktion erstellen, die den Wert überprüft und auf der Basis der Aktion eine Aktion ausführt. Text auslösen ". Sie können dann in den Projekttriggern unter "Ressourcen" im Skript-Editor für Ihre Hotkey-Funktion einen Ereignisauslöser onEdit festlegen. 

Der größte Nachteil dieses Ansatzes ist, dass der onEdit-Auslöser (zumindest für mich) etwa 7 volle Sekunden benötigt, um die Änderung zu erkennen und das Update durchzuführen. Wenn Sie etwas schneller verarbeiten müssen, müssen Sie möglicherweise nach einem alternativen Ansatz suchen.

Im Folgenden finden Sie ein Beispiel für das Ändern der Zeilenfarbe basierend auf dem Auslösetext in einer bestimmten Auslöserspalte. Sie können dies verwenden, um alles zu tun, was auf dem Arbeitsblatt über Skripte ausgeführt werden kann, z. B. Werte ändern, Schriftgewicht einstellen, Daten kopieren oder sogar andere Funktionen ausführen, nachdem die Trigger-Texteingabe überprüft wurde.

/*you will need to add an onEdit trigger to your project 
  for this to run when you edit the cell*/


//function to update row color using entered text in a specified "trigger" column

function hotKey(){ 

  //get the cell you edited and the associated column and row number
  var cell = sheet.getActiveCell(); 
  var thisCol = cell.getColumn(); 
  var thisRow = cell.getRow(); 

  //set a range variable for the entire row
  var colorRow = sheet.getRange(thisRow,thisCol,1,Cols); 

  //get the edited value for the cell as a string
  var val = cell.getValue().toString(); 

  //check that the edited cell is in the trigger column
  if (thisCol = 1){

    //update the row color based on the entered value 
    if(val == "g"){ 
      colorRow.setBackground("#00ff00"); //sets row color to green
      cell.clearContent(); //delete the trigger cell value

    }else if(val == "r"){
      colorRow.setBackground("#ff0000");
      cell.clearContent();
    }else if(val == "fd"){
      colorRow.setBackground("#fff2cc");
      cell.clearContent();
    }else if(val == "pr"){
      colorRow.setBackground("#ffff00");
      cell.clearContent();
    }else if(val == "cn"){
      colorRow.setBackground("#6fa8dc");
      cell.clearContent();
    }
  }
}
1
MistyDawn

Ich habe Probleme mit einem ähnlichen Problem, und ich habe bisher nicht viel gelöst, aber ich denke, ein Weg nach vorne kann durch diesen keypress-Ereignishandler unter Class Textbox

Ich weiß nicht, ob dies das Problem der Serverseite nur umgeht, auf das Arun hingewiesen hat, aber ich hoffe es sehr. Bitte zögern Sie nicht, meine Argumente zu korrigieren, bevor ich zu viel Zeit damit versuche, dies zu versuchen! :)

0
The Guy

Um es kurz zu machen: Schreiben Sie einen HTML-Dienst, der mithilfe eines Ereignishandlers für Tastendrucke Tastendruckereignisse erfasst und mit den gewünschten Tastenkürzeln vergleicht. Ruft dann die entsprechende Unterroutine auf der Serverseite im App-Skript auf, um die für Tastatureingaben, das Format oder das aufgerufen werden Dokumentänderungen.

Was die Lebensfähigkeit angeht, ist dies nicht so einfach wie die vba, mit der Sie bereits vertraut sind, aber wenn Sie erst einmal an den verschiedenen Vorgehensweisen vorbeigegangen sind, die nicht wirklich so schrecklich schwierig sind.

0
The Guy