Microsoft Excel er et optimalt miljø for å skape og opprettholde en kalender . Bruk av ulike celler , kan du enkelt flytte fra dag til dag for å oppdatere kalenderen eller legge inn nye hendelser og avtaler . Det er ikke vanskelig å lage en kalender i Excel. Microsoft har levert en enkel CalendarMaker makro som settes inn i Visual Basic-redigering i Excel som vil skape kalenderen for deg . Alt du trenger å gjøre er å kopiere koden for å få månedlig kalender i Excel. Instruksjoner 
 en 
 Åpne Microsoft Excel . Klikk på "Verktøy "-menyen , velg "Macro " og klikk på " Visual Basic Editor " hvis du bruker Excel 2003 eller tidligere. For Excel 2007/2010 , klikk på "Utvikler " fanen og deretter på " Visual Basic. " Hvis du ikke ser "Utvikler "-kategorien , klikk på "Office "-knappen og deretter " Alternativer for Excel . " På den første skjermen , klikk på boksen ved siden av " Vis kategorien Utvikler på båndet " og deretter "OK". Den " Utvikler " fanen bør vise nå. 
 2 
 Klikk på "Sett inn " menyen i Visual Basic-redigering . Klikk på " Module " for å starte en ny kode modul 
 3 
 Kopier den første delen av følgende kode i den nye modulen : . 
 
 " Sub CalendarMaker ( ) 
 
 ' Opphev ark dersom hatt tidligere kalenderen for å hindre feil 
 
 ActiveSheet.Protect DrawingObjects : . = false , Innhold : = false , _ 
 
 Scenarios : = False 
 < p > ' Hindre skjermen blinker mens tegning kalenderen. 
 
 Application.ScreenUpdating = False 
 
 ' Set up feil fangst . 
 
 On Error GoTo MyErrorTrap 
 
 ' Clear området a1 : G14 inkludert eventuelle foregående kalenderår 
 
 Range (" a1 : G14 ") . . Clear 
 
 ' bruk InputBox å få ønsket måned og år og sette variabel 
 
 ' MyInput . 
 
 MyInput = InputBox ( " Skriv inn måned og år for Kalender" ) 
 
 "Tillat bruker å avslutte makro med Avbryt i InputBox . 
 p Hvis MyInput =" " Then Exit Sub 
 
 " Get datoen verdien av begynnelsen av Angitt måned . 
 
 StartDay = DateValue ( MyInput ) 
 
 ' Sjekk om gyldig dato, men ikke den første av måneden 
 
 '- hvis så, tilbakestille StartDay til første dag i måneden 
 p Hvis Day ( StartDay ) < > 1 så 
 
 StartDay = DateValue (måned . ( StartDay ) & " /1 /" & _ 
 
 Year ( StartDay ) ) 
 
 End If 
 
 ' Prepare celle for måned og år med fullt skrevet ut . 
 
 Range (" a1 ") NumberFormat = " mmmm åååå " 
 
 ' senter the Month og Year etiketten over a1 : g1 med passende 
 
 ' . størrelse, høyde og fet skrift . 
 p Med Range (" a1 : g1 ") . . . 
 
 HorizontalAlignment = xlCenterAcrossSelection 
 
 VerticalAlignment = xlCenter 
 
 Font.Size = 18 
 
 Font.Bold = sant 
 
 RowHeight = 35 
 
 End With 
 
 ' Forbered a2 : g2 for dagen i uken etiketter med sentrering, størrelse, < . br > 
 ' høyde og fet skrift 
 p Med Range (" a2 : g2 ") 
 
 ColumnWidth = 11 
 
 VerticalAlignment = xlCenter 
 
 . HorizontalAlignment = xlCenter 
 
 . VerticalAlignment = xlCenter 
 
 . Orientering = xlHorizontal 
 
 . Font.Size = 12 
 
 . Font.Bold = sant 
 
 RowHeight = 20 
 
 End With 
 
 ' Put dager i uken i a2 : . . g2 
 
 Range ( " a2 ") = "Søndag" 
 
 Range (" b2 ") = " mandag " 
 
 Range (" c2 ") = " tirsdag " 
 
 Range (" d2 ") = " onsdag " 
 
 Range (" e2 ") = " Torsdag " 
 
 Range (" F2" ) = " fredag " 
 
 Range (" g2 ") = " lørdag " 
 < p > ' Forbered a3 : g7 for datoer med venstre /topp justering, størrelse , høyde 
 
 ' . og fet skrift 
 p Med Range (" a3 : G8 ") . 
 
 HorizontalAlignment = xlRight 
 
 . VerticalAlignment = xlTop 
 
 . Font.Size = 18 
 
 . Font.Bold = sant 
 
 . RowHeight = 21 
 < p> End With 
 
 ' Sett lagt inn måned og år fullt stave ut i " a1 " . 
 
 Range (" a1 ") . Verdi = Application.Text ( MyInput , " mmmm åååå ") 
 
 ' Set variable og få hvilken dag i uken i måneden starter. 
 
 dayOfWeek = WeekDay ( StartDay ) 
 
 ' Set variabler for å identifisere år og måned som separate 
 
 ' variabler . 
 
 CurYear = Year ( StartDay ) 
 
 CurMonth = Måned ( StartDay ) 
 
 ' Set variable og beregne den første dagen i neste måned . 
 
 FinalDay = DateSerial ( CurYear , CurMonth + 1 , 1 ) 
 
 'Place et "1" i celle posisjonen til den første dagen i den valgte 
 
 ' måned basert på dayOfWeek . " 
 
 Fjern anførselstegn på den første og siste linje av koden . 
 4 
 Kopier resten av koden som tar formatet fra koden ovenfor og skape selve kalenderen. Lim inn koden rett under der koden fra ovennevnte ender. 
 
 "Select sak dayOfWeek 
 
 Sak 1 
 
 Range (" a3 ") . Verdi = 1 
 < p > Case 2 
 
 Range (" b3 ") . Verdi = 1 
 
 sak 3 
 
 Range (" c3 ") . Verdi = 1 
 
 sak 4 
 
 Range (" d3 ") . Verdi = 1 
 
 sak 5 
 
 Range (" e3 ") . Verdi = 1 
 
 sak 6 
 
 Range (" f3 ") . Verdi = 1 
 
 sak 7 
 
 Range (" g3 ") . Verdi = 1 
 
 End Velg 
 
 ' Loop gjennom serien a3 : g8 økes hver celle etter " en " 
 
 ' celle 
 
 for hver celle i Range (" a3 : G8 ") . 
 < p> RowCell = cell.Row 
 
 ColCell = cell.Column 
 
 "Gjør om " en "er i første kolonne. 
 p Hvis cell.Column = 1 og celle. p = 3 Da 
 
 ' Gjør om gjeldende celle er ikke i første kolonne. 
 
 ElseIf cell.Column < > 1 Så 
 p Hvis cell.Offset ( 0 , -1 ) . verdi > = 1 Deretter 
 
 cell.Value = cell.Offset ( 0 , -1 ) . verdi + 1 
 
 ' Stopp når den siste dagen i måneden har vært 
 
 ' inn 
 p Hvis cell.Value > ( FinalDay - StartDay ) . Deretter 
 
 cell.Value = "" 
 
 ' Exit loop når kalenderen har riktig antall 
 
 ' dager vist . 
 
 Exit for 
 
 End If 
 
 End If 
 
 du skal bare hvis gjeldende cellen ikke er i rad 3 , og er i kolonne 1 . 
 
 ElseIf cell.Row > 3 og cell.Column = 1 Deretter 
 
 cell.Value = cell.Offset ( -1 , 6 ) . verdi + 1 
 
 ' Stopp når den siste dagen i måneden er inngått 
 p Hvis cell.Value > ( FinalDay - StartDay ) . Deretter 
 
 cell.Value = "" 
 
 ' Exit loop når kalenderen har riktig antall dager 
 
 ' vist . 
 
 Exit for 
 
 End If 
 
 End If 
 
 Neste 
 
 Opprett Entry celler , formatere dem sentrert , wrap tekst , og grensen 
 
 'around dager. 
 
 For x = 0 til . 5 
 
 Range (" A4" ) Offset ( x * 2 , 0 ) EntireRow.Insert 
 p Med Range (" A4 : G4 ") . . Offset ( x * 2 , 0 ) 
 
 . RowHeight = 65 
 
 . HorizontalAlignment = xlCenter 
 
 . VerticalAlignment = xlTop 
 
 . WrapText = sant 
 
 . Font.Size = 10