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