Business Model Canvas (Excel VBA)
Alexander Osterwalder created a way to display how a business operates with nine building blocks: Key Partners, Key Activities, Value Propositions, Customer Relationships, Customer Segments, Key Resources, Channels
Cost Structure, and Revenue Streams.
If you want to use Microsoft Excel to Create a printable .xslx document, do the following.
If you need to get Excel, it’s available here: https://www.microsoft.com/en-us/microsoft-365/excel
Create a Blank workbook.
Get Mike with Tango Reef’s stories in your inbox
Join Medium for free to get updates from this writer.
Make sure the Developer Tab is visible.
If you can’t find the Developer Tab, follow these steps:
- On the File tab, go to Options > Customize Ribbon.
- Under Customize the Ribbon and under Main Tabs, select the Developer check box.
- Press OK.
Click the [Visual Basic] button on the Developer Tab. It’s in the Code section.
Insert a Module.
Paste the following VBA code and paste it in the Excel Module.
Sub CreateBusinessModelCanvas()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets.Add(After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count))
ws.Name = "Business Model Canvas"
' Set page layout to landscape and adjust print settings
With ws.PageSetup
.Orientation = xlLandscape
.CenterHorizontally = True
.CenterVertically = True
End With
' Adjust column widths to 11
ws.Columns.ColumnWidth = 11
' Define merged areas
Dim mergedAreas As Variant
mergedAreas = Array("A1:B1", "A2:B4", "C1:D1", "C2:D2", "E1:F1", "E2:F4", _
"G1:H1", "G2:H2", "I1:J1", "I2:J4", "C3:D3", "C4:D4", _
"G3:H3", "G4:H4", "A5:E5", "A6:E6", "F5:J5", "F6:J6")
Dim area As Variant
For Each area In mergedAreas
With ws.Range(area)
.Merge
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.Font.Bold = True
.Borders.Weight = xlThin
End With
Next area
' Set row heights for specific rows
Dim row As Integer
For row = 2 To 6 Step 2
ws.Rows(row).RowHeight = 150
Next row
' Add titles to merged areas
ws.Range("A1").Value = "Key Partners"
ws.Range("C1").Value = "Key Activities"
ws.Range("E1").Value = "Value Propositions"
ws.Range("G1").Value = "Customer Relationships"
ws.Range("I1").Value = "Customer Segments"
ws.Range("C3").Value = "Key Resources"
ws.Range("G3").Value = "Channels"
ws.Range("A5").Value = "Cost Structure"
ws.Range("F5").Value = "Revenue Streams"
End Sub
This will give you a printable version of the Business Model Canvas for you to iterate and discover your needs and what works for you.





