ArtsAutosBooksBusinessEducationEntertainmentFamilyFashionFoodGamesGenderHealthHolidaysHomeHubPagesPersonal FinancePetsPoliticsReligionSportsTechnologyTravel

How to Use and Design Excel Macros - Part 4: Sample Macro Instructions

Updated on December 23, 2013

Back to Part 3

Introduction

Creating a sample macro demonstrates both recording, writing, and copy-paste options to provide the user with experience designing a macro in all possible ways. These instructions also discuss defining variables, the Do While function, and the basics of manipulating graph features.

Actual process:

  • Importing data to Microsoft Excel, condensing multiple columns into one, and creating a scatterplot of the values
  • If the instructions are followed properly, the scatterplot should spell CONGRATS

Glossary

  • Boolean – a type of data that can only have two values: true or false; used in conditional statements
  • Function – code that stands for a specific action
  • Importing – the process of bringing data into Excel from an external source
  • Scatterplot – a graph of paired x- and y-values
  • Variable – a character or string of characters that represents a quantity or other data

Video Tutorial

Procedure

1. Open Microsoft Excel 2010. (There may be slight variations in other versions.)

2. Create a new sheet by clicking on the Insert Worksheet tab at the bottom left of the screen (alternatively Shift + F11). This will be Sheet4.

Note: The sheet is called “Sheet4” because this is how the name will appear in Excel.

3. Copy the following table, and paste it into Sheet4.

Troubleshooting: If a dark spot appears when you paste rather than the data, re-copy and paste the data table.

1
9
16
26
34
46
 
3
2
4
2
4
2.5
1
9
16
26
35
46
 
4
5
5
3
3
4
2
10
19
26
35
46
 
2
3
3
4
5
4.5
2
10
19
26
36
47
 
5
4
4
5
4
2
3
13
20
27
37
47
 
2
2
2
3
3
3.5
3
13
20
27
38
47
 
5
3
5
5
2
5
4
13
21
28
41
48
 
2
4
2
3
5
2
4
13
21
28
42
48
 
5
5
5
5
2
3
7
14
22
29
42
48
 
3
4
2
2
3
5
7
15
22
29
42
49
 
4
3
3
4
4
2.5
8
16
22
32
42
49
 
2
2
5
2
5
4.5
8
16
23
33
43
 
 
5
3
3
3
5
 

4. Copy the left half of the data to Sheet2, making sure to paste in the cell labeled “A1”.

5. Copy the right half of the data from Sheet4 to Sheet3, making sure to paste in the cell labeled “A1”.

6. Click the View tab at the top of the screen.

7. Select the small arrow beneath Macros (the far right icon), and click Record Macro. A dialogue box will pop up.

8. In the field labeled Macro name, type “GraphMaker”.

Note: You cannot have any spaces in a macro name. You can use an underscore ( _ ) instead if desired.

9. In the field labeled Shortcut key, type “g”. You will be able to use the keys Ctrl + g to run the macro.

10. Click OK. The Description field is optional.

11. Select Sheet2.

12. Click the arrow beneath Macros again, and choose Stop Recording.

13. Select the image above Macros or View Macros. Click Edit. This will open the screen you can use to directly write a macro. It is called Microsoft Visual Basic for Applications (VBA).

You will notice that the code on the right is already written.

14. Click after the word “Select” and hit Enter on your keyboard.

15. Copy and paste the following code into the macro:

  • Dim x As Integer
  • Dim y As Integer
  • x = 1
  • y = 1
  • Do While (Cells(1, x).Value <> "")
  • x = x + 1
  • Loop
  • Do While (Cells(y, 1).Value <> "")
  • y = y + 1
  • Loop
  • x = x - 1
  • y = y - 1
  • Dim a As Integer
  • Dim b As Integer
  • Dim c As Integer
  • a = 1
  • b = 2
  • c = 1
  • Do While (b <= x)
  • Do While (a <= y)
  • Cells(a, b).Cut
  • Cells(y + c, 1).Select
  • ActiveSheet.Paste
  • a = a + 1
  • c = c + 1
  • Loop
  • a = 1
  • b = b + 1
  • Loop

This code rearranges the data into a single column. First it counts the number of rows and columns. Then it goes down each column after the first and cuts and pastes each value beneath the previous in the first column.

Note: It is good practice to define your variables using the “Dim” lines, but the macro will usually function even if this is not included.

Note: The “Do While” function will continue to perform an action due to “Loop” until the condition specified is no longer met. Common Boolean expressions are listed in this table:

16. Click just before End Sub and hit Enter. Type “Sheets(“Sheet3”).Select” and then copy and paste the above code again. This time delete the “Dim” lines because the variables are already defined.

17. Again click just before End Sub and hit Enter. Copy and paste this code into the macro:

  • Sheets("Sheet2").Select
  • Range("A:A").Copy
  • Sheets("Sheet1").Select
  • Range("A1").Select
  • ActiveSheet.Paste
  • Sheets("Sheet3").Select
  • Range("A:A").Copy
  • Sheets("Sheet1").Select
  • Range("B1").Select
  • ActiveSheet.Paste

This pastes the columns into Sheet1.

18. Switch to the standard Excel screen by clicking the Excel icon on the taskbar at the bottom of the screen and choosing the option titled Microsoft Excel rather than Microsoft Visual Basic. (Pressing Alt + Tab will also cycle between screens.)

19. Press Ctrl + g. (Alternatively, you can click View Macros and then select Run.)

The data should be condensed into one column each and then get transferred to Sheet1.

Troubleshooting: If you made a mistake, an error message may be displayed when you attempt to run the program. If you click Debug, the line of the code that caused an issue is highlighted. You must press the Reset (blue square) button at the top of the screen before you can attempt to run the macro again. If you click End, you will have to find the issue yourself, but you will be able to run the macro again without needing to hit the Reset button.

20. Click Record Macro again. This time name the macro “Test” and assign the key “t” to it.

21. Select columns A and B. Change to the Insert tab, and click Scatter in the Chart section. Choose the first option.

22. Resize the graph by dragging the corners until it takes up the space from D7 to T20.

23. Right click on the x-axis and choose Format Axis. Select a fixed maximum of 50.

24. Right click on the data series in the graph and choose Format Data Series.

25. Change the Marker Options to Built-in circles of size 20. The scatterplot should spell out the word CONGRATS.

26. Stop Recording.

27. View and Edit the macro Test.

28. Copy the code in the macro other than the introduction and ending, and paste it at the bottom of the macro GraphMaker.

Note: You can switch back and forth between the macros by clicking on the different Modules listed on the left of the screen.

Mandatory Troubleshooting: Insert a line immediately after the scatterplot is created and type “ActiveChart.Parent.Name = "Chart 1"”. This code will ensure that the chart that was just created is the one which will be modified in later lines.

29. Switch back to the standard Excel screen.

30. Delete all data and graphs from Sheet1, Sheet2, and Sheet3.

31. Re-copy the left half of the data on Sheet4 to Sheet 2 and the right half to Sheet3.

32. Press Ctrl + g. The program should run, resulting in the creation of the graph with the word CONGRATS in large letters made of dots.

Note: The graph may have an empty title and axis labels when it is created using the macro. This can be eliminated by using another Test macro to record the deletion of these titles. (In order to make another macro with the same name, it is first necessary to delete the previous one. This can be done in the View Macros screen.) If a trendline appears as well, it can be removed in the same way.

Troubleshooting: If you have any problems, you can attempt to fix the issues using another Test macro as described in the Note above.

33. In order to save the Excel workbook so that you can use the macro again, you must click File and Save As. In the save screen, create a name for the workbook and select Excel Macro-Enabled Workbook. When the workbook is reopened, you will have to click Enable Macros to use GraphMaker and other macros.

working

This website uses cookies

As a user in the EEA, your approval is needed on a few things. To provide a better website experience, hubpages.com uses cookies (and other similar technologies) and may collect, process, and share personal data. Please choose which areas of our service you consent to our doing so.

For more information on managing or withdrawing consents and how we handle data, visit our Privacy Policy at: https://corp.maven.io/privacy-policy

Show Details
Necessary
HubPages Device IDThis is used to identify particular browsers or devices when the access the service, and is used for security reasons.
LoginThis is necessary to sign in to the HubPages Service.
Google RecaptchaThis is used to prevent bots and spam. (Privacy Policy)
AkismetThis is used to detect comment spam. (Privacy Policy)
HubPages Google AnalyticsThis is used to provide data on traffic to our website, all personally identifyable data is anonymized. (Privacy Policy)
HubPages Traffic PixelThis is used to collect data on traffic to articles and other pages on our site. Unless you are signed in to a HubPages account, all personally identifiable information is anonymized.
Amazon Web ServicesThis is a cloud services platform that we used to host our service. (Privacy Policy)
CloudflareThis is a cloud CDN service that we use to efficiently deliver files required for our service to operate such as javascript, cascading style sheets, images, and videos. (Privacy Policy)
Google Hosted LibrariesJavascript software libraries such as jQuery are loaded at endpoints on the googleapis.com or gstatic.com domains, for performance and efficiency reasons. (Privacy Policy)
Features
Google Custom SearchThis is feature allows you to search the site. (Privacy Policy)
Google MapsSome articles have Google Maps embedded in them. (Privacy Policy)
Google ChartsThis is used to display charts and graphs on articles and the author center. (Privacy Policy)
Google AdSense Host APIThis service allows you to sign up for or associate a Google AdSense account with HubPages, so that you can earn money from ads on your articles. No data is shared unless you engage with this feature. (Privacy Policy)
Google YouTubeSome articles have YouTube videos embedded in them. (Privacy Policy)
VimeoSome articles have Vimeo videos embedded in them. (Privacy Policy)
PaypalThis is used for a registered author who enrolls in the HubPages Earnings program and requests to be paid via PayPal. No data is shared with Paypal unless you engage with this feature. (Privacy Policy)
Facebook LoginYou can use this to streamline signing up for, or signing in to your Hubpages account. No data is shared with Facebook unless you engage with this feature. (Privacy Policy)
MavenThis supports the Maven widget and search functionality. (Privacy Policy)
Marketing
Google AdSenseThis is an ad network. (Privacy Policy)
Google DoubleClickGoogle provides ad serving technology and runs an ad network. (Privacy Policy)
Index ExchangeThis is an ad network. (Privacy Policy)
SovrnThis is an ad network. (Privacy Policy)
Facebook AdsThis is an ad network. (Privacy Policy)
Amazon Unified Ad MarketplaceThis is an ad network. (Privacy Policy)
AppNexusThis is an ad network. (Privacy Policy)
OpenxThis is an ad network. (Privacy Policy)
Rubicon ProjectThis is an ad network. (Privacy Policy)
TripleLiftThis is an ad network. (Privacy Policy)
Say MediaWe partner with Say Media to deliver ad campaigns on our sites. (Privacy Policy)
Remarketing PixelsWe may use remarketing pixels from advertising networks such as Google AdWords, Bing Ads, and Facebook in order to advertise the HubPages Service to people that have visited our sites.
Conversion Tracking PixelsWe may use conversion tracking pixels from advertising networks such as Google AdWords, Bing Ads, and Facebook in order to identify when an advertisement has successfully resulted in the desired action, such as signing up for the HubPages Service or publishing an article on the HubPages Service.
Statistics
Author Google AnalyticsThis is used to provide traffic data and reports to the authors of articles on the HubPages Service. (Privacy Policy)
ComscoreComScore is a media measurement and analytics company providing marketing data and analytics to enterprises, media and advertising agencies, and publishers. Non-consent will result in ComScore only processing obfuscated personal data. (Privacy Policy)
Amazon Tracking PixelSome articles display amazon products as part of the Amazon Affiliate program, this pixel provides traffic statistics for those products (Privacy Policy)
ClickscoThis is a data management platform studying reader behavior (Privacy Policy)