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.
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.