Hvordan lage en kalender ved hjelp av Excel

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