Come per qualsiasi altra cosa nel mondo di Moduli Google e Fogli Google, possiamo facilmente automatizzare il processo di aggiunta collettiva delle scelte di domande in Moduli Google con l’aiuto di Google Apps Script.

Immagina di dover inserire una serie di opzioni nell’elenco a discesa di un Form, senza l’ausilio di AppScipt dovresti farlo a mano.

L’idea è semplice. Avremo un foglio Google che sarà la fonte dei dati e avremo tutte le scelte di risposta per varie domande nel modulo Google.

L’app leggerà i dati da questo foglio Google e compilerà automaticamente le scelte nel modulo con un clic. Puoi persino creare un trigger temporale che viene eseguito ogni ora, giorno o mese per aggiornare dinamicamente il tuo modulo utilizzando i dati più recenti disponibili nel foglio di calcolo.

Aggiungi opzioni negli elenchi a discesa e nelle domande a scelta multipla

Crea un foglio di lavoro Google e aggiungi i titoli delle domande nella prima riga del foglio, uno per colonna. Quindi, annota tutte le opzioni o scelte che dovrebbero essere disponibili per ogni domanda.

Ecco come apparirà la struttura del foglio di lavoro:

La cosa importante da notare qui è che le intestazioni delle colonne nel foglio di lavoro devono corrispondere esattamente alle etichette dei campi del modulo del modulo Google. 

Google Script può aggiungere in blocco risposte a domande a scelta multipla con un’unica risposta, elenchi a discesa e caselle di controllo con più opzioni.

Opzioni di aggiunta di domande in blocco in Moduli Google

Apri il foglio Google che ha le scelte delle domande, vai al menu Strumenti e scegli Editor di Script . Sostituisci il codice predefinito nell’editor di script con lo script di Google riportato di seguito.

/**
 * Compila automaticamente le domande in Moduli Google con Fogli Google
 * by Fausto Pitzalis for smartworkers.cloud (MIT License)
 *
 **/

const populateGoogleForms = () => {
  const GOOGLE_SHEET_NAME = "inserisci qui il nome del foglio google";
  const GOOGLE_FORM_ID = "inserisci qui l'ID del Form di Google";

  const ss = SpreadsheetApp.getActiveSpreadsheet();

  const [header, ...data] = ss
    .getSheetByName(GOOGLE_SHEET_NAME)
    .getDataRange()
    .getDisplayValues();

  const choices = {};
  header.forEach((title, i) => {
    choices[title] = data.map((d) => d[i]).filter((e) => e);
  });

  FormApp.openById(GOOGLE_FORM_ID)
    .getItems()
    .map((item) => ({
      item,
      values: choices[item.getTitle()],
    }))
    .filter(({ values }) => values)
    .forEach(({ item, values }) => {
      switch (item.getType()) {
        case FormApp.ItemType.CHECKBOX:
          item.asCheckboxItem().setChoiceValues(values);
          break;
        case FormApp.ItemType.LIST:
          item.asListItem().setChoiceValues(values);
          break;
        case FormApp.ItemType.MULTIPLE_CHOICE:
          item.asMultipleChoiceItem().setChoiceValues(values);
          break;
        default:
        // ignore item
      }
    });
  ss.toast("Google Form Updated !!");
};

È necessario completare questo codice con i propri valori nelle parti in cui viene indicato il “nome foglio google” e Form ID. 

Vai al menu Esegui all’interno dell’editor di script, scegli la funzione populateGoogleForms e se hai fatto tutto bene, il Form verrà compilato cone le domande specificate nel modulo Google.

Aggiorna dinamicamente le risposte in Moduli Google

D’ora in avanti, ogni volta che devi aggiornare le scelte di risposta in Moduli Google, puoi semplicemente aggiornare i valori all’interno del foglio di calcolo ed eseguire la stessa funzione di compilazione automatica dall’editor di script.

Oppure, per rendere le cose ancora più semplici, puoi aggiungere un pulsante sulla pagina del foglio di calcolo che, se cliccato, aggiornerà automaticamente le risposte in Moduli Google per te.

Vai al menu Inserisci in Fogli Google, scegli il disegno e scegli una forma qualsiasi. Puoi anche aggiungere testo in sovrimpressione alla forma. Una volta posizionata la forma nell’area del foglio di calcolo, fai clic sul menu, scegli Assegna script e digita populateGoogleForms.

Questo è tutto. Puoi fare clic su questo pulsante per aggiornare i tuoi moduli Google direttamente nei fogli Google. Tieni presente che lo script non aggiungerà scelte, sostituirà tutte le scelte esistenti con quelle disponibili nel tuo foglio Google.