Using Macros and Google Apps Script

Automating repetitive tasks in Google Sheets can save time and reduce errors, making your workflows more efficient. This tutorial will guide you through using Macros and Google Apps Script to automate common tasks within your spreadsheet templates, such as formatting, data entry, and calculations.


  • Learn to record, edit, and use Macros in Google Sheets.
  • Understand the basics of Google Apps Script for custom automation tasks.


  • Basic familiarity with Google Sheets.
  • No prior programming experience is needed for Macros. Some basic JavaScript knowledge will be helpful for Google Apps Script.

Materials Needed

  • A Google account and access to Google Sheets.
  • A spreadsheet with data suitable for automation (e.g., a monthly budget sheet, project tracking template).

Step-by-Step Instructions

Part 1: Automating with Macros

Step 1: Recording a Macro

  1. Prepare Your Data: Open a Google Sheet with typical data you work with. For example, a budget sheet with columns for Date, Description, Category, Income, and Expense.
  2. Start Recording: Go to Tools > Macros > Record Macro. This begins the recording session, capturing your actions.
  3. Perform Repetitive Tasks: Execute the tasks you want to automate, such as formatting columns, adding formulas, or sorting data.
  4. Stop Recording: Click "Save" to stop recording. Name your macro and assign a shortcut (optional).

Step 2: Running a Macro

  • Execute Your Macro: Go to Tools > Macros, and select the macro you recorded. Watch as it automatically repeats the actions you recorded.

Part 2: Automating with Google Apps Script

Step 1: Accessing Google Apps Script

  1. Open the Script Editor: In your Google Sheet, go to Extensions > Apps Script.
  2. Create a New Script: You'll see an editor window. Here, you can write JavaScript code to automate tasks.

Step 2: Writing a Simple Script

  1. Example Task: Let's automate adding a timestamp in column A whenever a new entry is made in column B.
  2. Enter the Script:

    function onEdit(e) {
      var range = e.range;
      var sheet = range.getSheet();
      if (range.getColumn() == 2 && sheet.getName() == "Sheet1") { // Check if edit is in column B of Sheet1
        var timestampCell = sheet.getRange(range.getRow(), 1); // Get corresponding cell in column A
        timestampCell.setValue(new Date()); // Set current date and time

  3. Save and Name Your Project: Click on the disk icon or File > Save, and give your project a name.

Step 3: Testing Your Script

  • Make an Edit: Go back to your Google Sheet and try entering data into column B of "Sheet1". You should see the current timestamp automatically appear in column A.

Tips and Tricks

  • Debugging: If your script isn't working as expected, use the "Logger.log()" function to debug. Access logs via View > Logs in the Script Editor.
  • Macro Limitations: For tasks that can't be accomplished with Macros (e.g., sending emails, accessing external APIs), use Google Apps Script.


By mastering Macros and Google Apps Script, you can automate a wide range of tasks in Google Sheets, from simple data entry and formatting to more complex workflows involving external data and APIs. Start with simple automations to get comfortable with the tools, then gradually tackle more complex tasks as you become more familiar with Google Apps Script's capabilities.

Text and images Copyright © Spreadsheet Templates

Use of this website is under the conditions of our Terms of Service.

Privacy is important and our policy is detailed in our Privacy Policy.

See the Spreadsheet Templates Cookie Policy for our use of cookies and the user options available.