Memperkenalkan editor skrip

Saat Anda membuat makro, Google Sheets menyimpan tindakan Anda sebagai fungsi Script Aplikasi. Saat Anda mengaktifkan makro, Google Sheets memanggil fungsi Script Aplikasi untuk mengambil tindakan yang sama dalam urutan yang sama.

Melihat editor skrip

Sekarang Anda telah membuat makro, Anda dapat melihat kode itu. Anda dapat melihat skrip makro dengan memilih Alat> Editor skrip untuk membuka editor kode browser untuk Skrip Aplikasi.

Sekarang Anda dapat melihat editor skrip! Editor skrip memungkinkan Anda untuk menulis kode dalam Apps Script dan menjalankan skrip tersebut di server Google.

Editor skrip yang ditunjukkan di atas memiliki beberapa komponen:

  • Sebuah judul proyek atau nama proyek naskah yang berisi script Anda.
  • Sebuah menu atau daftar operasi yang berkaitan dengan proyek Anda.
  • Sebuah taskbar atau daftar operasi yang berkaitan dengan naskah Anda seperti  Simpan .
  • Sebuah sidebar naskah yang menggambarkan script proyek.
  • The saat naskah yang menunjukkan script yang dipilih dari sidebar naskah.

Catatan: Makro dan skrip yang Anda buat dalam codelab ini dilampirkan ke file Google Sheet tempat mereka beroperasi, dan dapat diakses kapan saja dari item menu Sheets Tools> Script editor . Skrip yang dilampirkan ke Google Sheet seperti ini disebut wadah terikat .

Pemahaman macro.gs

Selanjutnya, lihat skrip saat ini. Lembar membuat macros.gsfile skrip saat Anda merekam Headermakro, mengisinya dengan fungsi Skrip Aplikasi yang disebut Header. Saat Anda mengaktifkan makro, Sheets menjalankan fungsi ini.

Lihatlah gambar di bawah untuk membiasakan diri dengan struktur fungsi makro Anda di Apps Script. Catatan: Kode Anda mungkin terlihat sedikit berbeda dari ini jika Anda merekam langkah-langkah dalam urutan yang berbeda atau mengklik di sekitar spreadsheet saat merekam.

Baris pertama adalah komentar penjelasan yang memengaruhi otorisasi:

/** @OnlyCurrentDoc */

Sebagian besar skrip meminta beberapa izin kepada pengguna sebelum dapat dijalankan. Izin ini mengontrol apa yang pengguna lakukan untuk melakukan skrip. Saat @OnlyCurrentDockomentar hadir dalam proyek skrip, Skrip Aplikasi hanya meminta izin untuk mengakses dan memperbarui spreadsheet saat ini. Tanpa komentar ini, Apps Script akan meminta izin untuk mengakses dan memperbarui semua spreadsheet pengguna. Itu selalu merupakan ide yang baik untuk memasukkan anotasi ini ketika Anda mengharapkan untuk bekerja hanya dengan satu file. Perekam makro menambahkan komentar ini secara otomatis untuk Anda.

Untuk mulai memahami bagaimana Script Aplikasi mewakili instruksi makro Anda, Anda dapat melihat fungsinya:

function Header(){  
  var spreadsheet = SpreadsheetApp.getActive();
  var sheet = spreadsheet.getActiveSheet();
  sheet.getRange(
    spreadsheet.getCurrentCell().getRow(),
    1, 1, sheet.getMaxColumns()).activate();
  spreadsheet.getActiveRangeList().setBackground('#4c1130')
  .setFontColor('#ffffff')
  .setFontWeight('bold');
  spreadsheet.getActiveSheet().setFrozenRows(1);
};

Kode ini berjalan saat Anda mengaktifkan Headermakro! Setelah itu function, label Header()menentukan nama fungsi dan parameternya. Kenali bahwa Header()tidak memerlukan parameter karena fungsi makro dalam Aplikasi Script tidak perlu input. Kurung selalu melampirkan tubuh fungsi di Apps Script.

Kemudian codelab dalam daftar putar ini menjelaskan kelas dan konsep yang terlibat dalam pembuatan makro. Tetapi untuk saat ini Anda dapat melalui deskripsi kode berikut untuk mendapatkan gambaran umum tentang komponen-komponennya dan perannya dalam membangun makro Anda. Pertimbangkan baris pertama:

var spreadsheet = SpreadsheetApp.getActive();

Di sini, getActive()mengembalikan objek yang mewakili file spreadsheet aktif saat ini di Lembar dan menetapkannya ke variabel baruspreadsheet.

var sheet = spreadsheet.getActiveSheet();
sheet.getRange(
    spreadsheet.getCurrentCell().getRow(),
    1, 1, sheet.getMaxColumns()).activate();

Baris ini sesuai dengan tindakan mengklik pada baris pertama untuk menyorotnya. Ini disebut aktivasi . Baris pertama menyimpan lembar saat ini dalam variabel sheet, sedangkan baris kedua mendapatkan seluruh baris pertama menggunakan getRange()metode dan kemudian panggilan activate()untuk mengaktifkannya. Baris pertama ditentukan menggunakan nomor baris dan kolom tertentu. The spreadsheet.getCurrentCell().getRow()panggilan mengembalikan jumlah baris saat ini, sementara sheet.getMaxColumns()pengembalian jumlah maksimum kolom dalam lembar.

spreadsheet.getActiveRangeList().setBackground('#4c1130')
.setFontColor('#ffffff')
.setFontWeight('bold');

Bit kode ini menjadi lebih kompleks. Untuk efisien memanggil metode dengan spreadsheet, kode tumpukan tiga metode ke getActiveRangeList()untuk mencegah kode dari berlebihan menelepon getActiveRangeList()pada spreadsheetlebih dari sekali. Saat Anda kode semakin banyak menggunakan Apps Script, Anda bisa lebih terbiasa dengan konvensi pemanggilan beberapa metode pada satu kelas (juga dikenal sebagai metode chaining ). Untuk saat ini, Anda dapat membaca berikut ini untuk penjelasan singkat tentang setiap metode dalam blok kode:

Terakhir, baris terakhir membekukan baris pertama makro:

spreadsheet.getActiveSheet().setFrozenRows(1);

Dan itulah skrip yang Anda hasilkan ketika Anda merekam makro Anda! Jangan khawatir tentang istilah atau metode asing yang disebutkan di atas. Deskripsi ini dimaksudkan untuk membuat Anda berpikir tentang beberapa ide yang difokuskan oleh Apps Script dalam fungsi makro yang khas, dan topik apa yang akan dibahas dalam codelab mendatang.

Bagian selanjutnya berfokus pada memanipulasi Header()kode untuk menunjukkan bagaimana Anda dapat menggunakan editor skrip untuk lebih mempersonalisasi makro.

Menyesuaikan makro dengan Script Aplikasi

Editor Apps Script menunjukkan makro yang Anda buat sebelumnya di Google Sheets. Dengan menyesuaikan isi badan fungsi, Anda dapat lebih lanjut menyesuaikan instruksi makro Anda untuk mengambil tindakan berbeda atau tambahan. Latihan berikut menunjukkan berbagai cara bagaimana Anda dapat memanipulasi makro dengan editor skrip.

Mengubah sel yang terpengaruh

Misalkan Anda ingin menyesuaikan makro Anda sehingga hanya mempengaruhi 10 kolom pertama dari baris pertama dan bukan seluruh baris. Anda bisa menghapus makro dan merekam ulang. Tetapi, dengan menggunakan editor Skrip Aplikasi, Anda dapat membuat perubahan itu secara langsung. Inilah salah satu cara melakukannya:

  1. Di editor skrip, ganti sheet.getMaxColumns()dengan 10pada baris 6. Suntingan ini mengubah rentang sel yang dipengaruhi makro dalam spreadsheet.
/** @OnlyCurrentDoc */

function Header(){
  var spreadsheet = SpreadsheetApp.getActive();
  var sheet = spreadsheet.getActiveSheet();
  sheet.getRange(
    spreadsheet.getCurrentCell().getRow(),
    1, 1, 10).activate();
    /* sheet.getMaxColumns() replaced with 10.*/
  spreadsheet.getActiveRangeList().setBackground('#4c1130')
  .setFontColor('#ffffff')
  .setFontWeight('bold');
  spreadsheet.getActiveSheet().setFrozenRows(1);
}
  1. Pilih File> Simpan , atau Ctrl + S ( Cmd + S pada Mac) untuk menyimpan skrip Anda. Selanjutnya Anda akan menguji makro yang diedit.
  2. Sebuah prompt mungkin muncul untuk meminta nama proyek. Jika demikian, masukkan “Makro dan Fungsi Kustom” sebagai nama proyek baru, dan klik OK.
  1. Di Lembar, klik atau Tambahkan Lembar untuk membuat lembar baru.
  1. Di editor skrip, pilih atau Run> Run function> Header untuk menjalankan fungsi makro.

Di lembar baru Anda, Anda akan melihat hasil berikut:

Dengan menyesuaikan rentang aktif atau target, makro Anda sekarang hanya memengaruhi bagian dari baris pertama! Banyak metode Aplikasi Script mengambil notasi rentang atau A1 sebagai parameter untuk menentukan sel mana yang akan ditindaklanjuti.

Sekarang, saatnya belajar menyesuaikan warna makro Anda!

Mengubah warna makro Anda

Untuk membantu Anda mendesain skema warna makro atau elemen lain di Sheets, Apps Script dapat menyesuaikan isi rentang atau warna teks. Bekerja melalui instruksi berikut untuk melihat bagaimana Anda dapat menyesuaikan warna makro Anda.

Beberapa instruksi pertama ini fokus pada mengubah warna latar belakang makro Anda:

  1. Di Lembar, beralih kembali ke lembar asli (Lembar 1) yang berisi data.
  2. Klik pada baris pertama untuk menyorotnya.
  3. Di editor skrip, ganti #4c1130dengan #afeeeepada baris 6. Nilai-nilai ini mewakili warna yang berbeda menggunakan notasi hex triplet .
/** @OnlyCurrentDoc */

function Header(){
  var spreadsheet = SpreadsheetApp.getActive();
  var sheet = spreadsheet.getActiveSheet();
  sheet.getRange(
    spreadsheet.getCurrentCell().getRow(),
    1, 1, 10).activate();
  spreadsheet.getActiveRangeList().setBackground('#afeeee')
    /* #4c1130 replaced with #afeeee.*/
  .setFontColor('#ffffff')
  .setFontWeight('bold');
  spreadsheet.getActiveSheet().setFrozenRows(1);
}
  1. Pilih File> Simpan , atau Ctrl + S ( Cmd + S pada Mac) untuk menyimpan skrip Anda.
  2. Pilih atau Run> Run function> Header untuk mengkompilasi dan menjalankan skrip.

Di Sheets, latar belakang mengisi 10 kolom pertama di baris pertama memberi warna turquoise seperti yang ditunjukkan di sini:

Dengan mengalihkan notasi warna heks di parameter setBackground(color)dari #4c1130(magenta gelap 3) menjadi #afeeee(pirus pucat, opsi yang tidak dapat diakses di menu warna default Sheets ‘), Anda mengubah atribut warna dari warna latar belakang makro Anda.

Anda telah menyesuaikan warna latar yang ditetapkan oleh makro Anda. Misalkan sekarang Anda ingin mengubah warna teks juga, untuk membuat label header lebih terlihat. Anda dapat melakukannya dengan mengubah kode warna kedua:

  1. Di Lembar, klik baris pertama untuk memastikan itu masih disorot.
  2. Di editor skrip, ganti #ffffffdengan #191970pada baris 8. Ini menyebabkan makro untuk mengatur warna font biru tua.
/** @OnlyCurrentDoc */

function Header(){
  var spreadsheet = SpreadsheetApp.getActive();
  var sheet = spreadsheet.getActiveSheet();
  sheet.getRange(
    spreadsheet.getCurrentCell().getRow(),
    1, 1, 10).activate();
  spreadsheet.getActiveRangeList().setBackground('#afeeee')
  .setFontColor('#191970')/* #ffffff replaced with #191970.*/
  .setFontWeight('bold');
  spreadsheet.getActiveSheet().setFrozenRows(1);
}
  1. Pilih File> Simpan , atau Ctrl + S ( Cmd + S pada Mac) untuk menyimpan skrip Anda.
  2. Pilih atau Run> Run function> Header untuk mengkompilasi dan menjalankan skrip.

Kembali ke Lembar. Lihat bahwa warna teks baris tajuk sekarang biru tua!

Sekarang Anda telah melihat bagaimana makro sebenarnya adalah Sheets action yang direkam sebagai kode Script Aplikasi. Di bagian berikutnya, Anda dapat melihat cara lain Apps Script dapat membantu Anda bekerja dengan Google Sheets: fungsi khusus .

Leave a Reply

Your email address will not be published. Required fields are marked *