├── README.md └── macros.gs /README.md: -------------------------------------------------------------------------------- 1 | # Google Sheets Macros 2 | 3 | Collection of macros for Google Sheets. 4 | 5 | ## How to use 6 | 7 | 1. In your Google Sheet, open your script editor: **Tools > Script editor** 8 | 9 | 2. Copy and paste the code onto a new line. 10 | 11 | 3. Import the function into your Macros list. Back in your Google Sheet, go to **Tools > Macros > Import** and select the function you want to import. 12 | 13 | 4. Add a shortcut key (optional) 14 | 15 | 5. Run the macro! 16 | 17 | ## Resources 18 | 19 | Blog post: [a The complete guide to simple automation in Google Sheets, using Macros](https://www.benlcollins.com/spreadsheets/macros/) 20 | -------------------------------------------------------------------------------- /macros.gs: -------------------------------------------------------------------------------- 1 | /** @OnlyCurrentDoc */ 2 | 3 | // 3. Format Text Example 4 | function FormatText() { 5 | var spreadsheet = SpreadsheetApp.getActive(); 6 | spreadsheet.getActiveRangeList().setFontWeight('bold') 7 | .setFontStyle('italic') 8 | .setFontColor('#ff0000') 9 | .setFontSize(18) 10 | .setFontFamily('Montserrat'); 11 | }; 12 | 13 | // 6.3 convert all formulas to values in the active sheet 14 | function formulasToValuesActiveSheet() { 15 | var sheet = SpreadsheetApp.getActiveSheet(); 16 | var range = sheet.getDataRange(); 17 | range.copyValuesToRange(sheet, 1, range.getLastColumn(), 1, range.getLastRow()); 18 | }; 19 | 20 | // 6.4 convert all formulas to values in every sheet of the Google Sheet 21 | function formulasToValuesGlobal() { 22 | var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets(); 23 | sheets.forEach(function(sheet) { 24 | var range = sheet.getDataRange(); 25 | range.copyValuesToRange(sheet, 1, range.getLastColumn(), 1, range.getLastRow()); 26 | }); 27 | }; 28 | 29 | // 6.5 sort sheets alphabetically 30 | function sortSheets() { 31 | var spreadsheet = SpreadsheetApp.getActiveSpreadsheet(); 32 | var sheets = spreadsheet.getSheets(); 33 | var sheetNames = []; 34 | sheets.forEach(function(sheet,i) { 35 | sheetNames.push(sheet.getName()); 36 | }); 37 | sheetNames.sort().forEach(function(sheet,i) { 38 | spreadsheet.getSheetByName(sheet).activate(); 39 | spreadsheet.moveActiveSheet(i + 1); 40 | }); 41 | }; 42 | 43 | // 6.6 unhide all rows and columns in current Sheet data range 44 | function unhideRowsColumnsActiveSheet() { 45 | var sheet = SpreadsheetApp.getActiveSheet(); 46 | var range = sheet.getDataRange(); 47 | sheet.unhideRow(range); 48 | sheet.unhideColumn(range); 49 | } 50 | 51 | // 6.7 unhide all rows and columns in data ranges of entire Google Sheet 52 | function unhideRowsColumnsGlobal() { 53 | var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets(); 54 | sheets.forEach(function(sheet) { 55 | var range = sheet.getDataRange(); 56 | sheet.unhideRow(range); 57 | sheet.unhideColumn(range); 58 | }); 59 | }; 60 | 61 | // 6.8 set all Sheets tabs to red 62 | function setTabColor() { 63 | var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets(); 64 | sheets.forEach(function(sheet) { 65 | sheet.setTabColor("ff0000"); 66 | }); 67 | }; 68 | 69 | // 6.9 remove all Sheets tabs color 70 | function resetTabColor() { 71 | var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets(); 72 | sheets.forEach(function(sheet) { 73 | sheet.setTabColor(null); 74 | }); 75 | }; 76 | 77 | // 6.10 hide all sheets except the active one 78 | function hideAllSheetsExceptActive() { 79 | var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets(); 80 | sheets.forEach(function(sheet) { 81 | if (sheet.getName() != SpreadsheetApp.getActiveSheet().getName()) 82 | sheet.hideSheet(); 83 | }); 84 | }; 85 | 86 | // 6.11 Unhide all sheets in Google Sheet 87 | function unhideAllSheets() { 88 | var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets(); 89 | sheets.forEach(function(sheet) { 90 | sheet.showSheet(); 91 | }); 92 | }; 93 | 94 | // 6.12 reset all filters for a data range on current Sheet 95 | function resetFilter() { 96 | var sheet = SpreadsheetApp.getActiveSheet(); 97 | var range = sheet.getDataRange(); 98 | range.getFilter().remove(); 99 | range.createFilter(); 100 | } --------------------------------------------------------------------------------