Hvordan lage en kalender ved hjelp av Excel
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 setter inn i Visual Basic-redigering i Excel som vil skape kalenderen for deg. Alt du trenger å gjøre er å kopiere koden til å ha månedlig kalender i Excel.
Bruksanvisning
1 Å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 klikk deretter på "Visual Basic". Hvis du ikke ser "Utvikler" fanen, klikk på "Office" -knappen og deretter "Alternativer for Excel." På den første skjermen, klikker du på boksen ved siden av "Show Developer fanen på båndet" og deretter "OK." Den "Utvikler" fanen skal vise nå.
2 Klikk på menypunktet i Visual Basic Editor "Insert". 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 ()
' Unprotect sheet if had previous calendar to prevent error.
ActiveSheet.Protect DrawingObjects: = false, Innhold: = False, _
Scenarier: = False
'Hindre skjermen blinker mens du tegner kalenderen.
Application.ScreenUpdating = False
'Sett opp feil fangst.
På 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 satt variabel
'MyInput.
MyInput = InputBox ( "Skriv inn måned og år for Calendar")
Tillat brukeren å avslutte makro med Avbryt i InputBox.
Hvis MyInput = "" Then Exit Sub
"Få datoverdien av begynnelsen av inputted måned.
StartDay = DATEVALUE (MyInput)
'Sjekk om gyldig dato, men ikke den første i måneden
'- Hvis så, reset StartDay til første dag i måneden.
Hvis Day (StartDay) & lt;> 1 Da
StartDay = DATEVALUE (måned (StartDay) & amp; "/ 1 /" & amp; _
År (StartDay))
Slutt om
Rydd celle for måned og år som du har skrevet.
Range ( "a1"). NumberFormat = "mmmm åååå"
'Senter måned og år etiketten over a1: g1 med passende
"Størrelse, høyde og fet skrift.
Med Range ( "A1: g1")
.HorizontalAlignment = XlCenterAcrossSelection
.VerticalAlignment = XlCenter
.Font.Size = 18
.Font.Bold = True
.RowHeight = 35
End With
Rydd a2: g2 for dagen i uken etiketter med sentrering, størrelse,
'Høyde og fet skrift.
Med Range ( "A2: g2")
.ColumnWidth = 11
.VerticalAlignment = XlCenter
.HorizontalAlignment = XlCenter
.VerticalAlignment = XlCenter
.Orientation = XlHorizontal
.Font.Size = 12
.Font.Bold = True
.RowHeight = 20
End With
'Sett dager i uken i A2: G2.
Range ( "A2") = "Søndag"
Range ( "b2") = "Monday"
Range ( "c2") = "tirsdag"
Range ( "d2") = "onsdag"
Range ( "e2") = "torsdag"
Range ( "F2") = "Fredag"
Range ( "g2") = "Lørdag"
Rydd a3: g7 for datoer med venstre / topp justering, størrelse, høyde
'Og fet skrift.
Med Range ( "a3: G8")
.HorizontalAlignment = XlRight
.VerticalAlignment = XlTop
.Font.Size = 18
.Font.Bold = True
.RowHeight = 21
End With
«Sett inputted måned og år fullt stave ut i" a1 ".
Range("a1").Value = Application.Text(MyInput, "mmmm yyyy")
"Set variabel og få hvilken dag i uken i måneden starter.
DayOfWeek = ukedag (StartDay)
'Sett variabler for å identifisere år og måned som separat
'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)
'Plassere en "1" i celle posisjon av den første dagen av 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 lage selve kalenderen. Lim inn koden rett under der koden ovenfra slutter.
"Select Case DayofWeek
tilfelle 1
Range ( "a3"). Verdi = 1
tilfelle 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 Select
'Loop gjennom området A3: G8 økes hver celle etter "1"
'Celle.
For Hver celle i Range ( "a3: G8")
RowCell = cell.Row
ColCell = cell.Column
'Du om "1" er i første kolonne.
Hvis cell.Column = 1 Og cell.Row = 3 Da
«Tror hvis gjeldende celle er ikke i første kolonne.
ElseIf cell.Column & lt;> 1 Da
Hvis cell.Offset (0, -1) .Value> = 1 Deretter
cell.Value = cell.Offset (0, -1) .Value + 1
'Stopp når den siste dagen i måneden har vært
'Angitt.
Hvis cell.Value> (FinalDay - StartDay) Deretter
cell.Value = ""
'Avslutt sløyfe når kalenderen har riktig antall
'Dager vist.
Exit For
Slutt om
Slutt om
«Tror bare hvis gjeldende celle er ikke i rad tre og er i kolonne 1.
ElseIf cell.Row> 3 Og cell.Column = 1 Deretter
cell.Value = cell.Offset (-1, 6) .Value + 1
'Stopp når den siste dagen i måneden er lagt inn.
Hvis cell.Value> (FinalDay - StartDay) Deretter
cell.Value = ""
'Avslutt sløyfe når kalenderen har riktig antall dager
' vist.
Exit For
Slutt om
Slutt om
neste
Opprett Entry celler, formatere dem sentrert, bryte tekst og border
'rundt dager.
For x = 0 til 5
Range ( "A4"). Offset (x * 2, 0) .EntireRow.Insert
Med Range ( "A4: G4"). Offset (x * 2, 0)
.RowHeight = 65
.HorizontalAlignment = XlCenter
.VerticalAlignment = XlTop
.WrapText = True
.Font.Size = 10
.Font.Bold = False
"Lås opp disse cellene til å være i stand til å skrive inn tekst senere etter
'Ark er beskyttet.
.Locked = False
End With
"Sett ramme rundt blokken av datoer.
Med Range ( "A3"). Offset (x * 2, 0) .Resize (2, _
7) .Borders (xlLeft)
.Weight = XlThick
.ColorIndex = XlAutomatic
End With
Med Range ( "A3"). Offset (x * 2, 0) .Resize (2, _
7) .Borders (xlRight)
.Weight = XlThick
.ColorIndex = XlAutomatic
End With
Range ( "A3"). Offset (x * 2, 0) .Resize (2, 7) .BorderAround _
Vekt: = xlThick, ColorIndex: = xlAutomatic
neste
Hvis Range ( "A13"). Value = "" Så Range ( "A13"). Offset (0, 0) _
.Resize (2, 8) .EntireRow.Delete
"Slå av rutenett.
ActiveWindow.DisplayGridlines = False
"Beskytt ark for å hindre overskriving datoene.
ActiveSheet.Protect DrawingObjects: = true, Innhold: = True, _
Scenarier: = Sant
'Resize vindu for å vise alle kalender (må kanskje justeres
'For video-konfigurasjon).
ActiveWindow.WindowState = xlMaximized
ActiveWindow.ScrollRow = 1
Tillat skjermen for å tegne med kalenderen viser.
Application.ScreenUpdating = True
'Unngå å gå til feil felle mindre feil funnet ved å gå ut Sub
"Her.
Exit Sub
«Feil årsaker MsgBox å indikere problemet, gir ny input-boksen,
'Og fortsetter på linjen som forårsaket feilen.
MyErrorTrap:
MsgBox "You may not have entered your Month and Year correctly." _
& Amp; Chr (13) & amp; "Spell Månedens riktig" _
& Amp; "(Eller bruke 3 bokstav forkortelse)" _
& Amp; Chr (13) & amp; "Og 4 siffer for the Year"
MyInput = InputBox ( "Skriv inn måned og år for Calendar")
Hvis MyInput = "" Then Exit Sub
Gjenoppta
End Sub "
Fjern anførselstegn på den første og siste linje av koden. Klikk på ikonet "Lagre" på verktøylinjen. Klikk på "File" menyen og deretter "Lukk og gå tilbake til Microsoft Excel."
5 Kjør "CalendarMaker" modul. I Excel 2007/2010, klikk på "Utvikler" fanen, og klikk deretter på "Makroer". I tidligere versjoner av Excel, klikk på "Tools", pek på "Makroer" og klikk deretter på "Makroer". Velg "CalendarMaker" makro fra listen i vinduet som kommer opp, og klikk deretter på "Kjør".