Microsoft Excel er en optimal miljø til at skabe og vedligeholde en kalender. Anvendelse af de forskellige celler , kan du nemt flytte fra dag til dag for at opdatere kalenderen eller tilføje i nye begivenheder og aftaler . Det er ikke hårdt på at skabe en kalender i Excel. Microsoft har leveret en simpel CalendarMaker makro, der indsætter i Visual Basic-editoren i Excel som vil skabe den kalender for dig. Alt du bliver nødt til at gøre, er at kopiere den kode, til at have din månedlige kalender i Excel. Instruktioner
1
Åbn Microsoft Excel. Klik på "Funktioner "-menuen , peg på "Macro " og klik on " Visual Basic Editor ", hvis at bruge Excel 2003 eller tidligere. For Excel 2007/2010 , klik på "Udvikler " fanen og derefter klikke på " Visual Basic. " Hvis du ikke kan se "Udvikler " fanen, du klikke på " Office"-knappen , og derefter " Excel-indstillinger. " På det første skærmbillede , skal du klikke på checken feltet ud for " Vis fanen Udvikler på båndet " og derefter klikke "OK". Den " Udvikler "-fanen skal vise nu.
2
Klik på "Indsæt" menupunkt i Visual Basic Editor. Klik på " Module" for at starte en ny kode -modul
3
Copy den første del af følgende kode i det nye modul : .
"Sub CalendarMaker () < br >
' Unprotect ark, hvis det haft tidligere kalender til at forhindre, fejl
ActiveSheet.Protect DrawingObjects : . = false , Indhold : = false , _
Scenarier : = False
< p > ' Forebyg skærmen, blinkende , mens du tegning kalender.
Application.ScreenUpdating = False
' Set up error trapping .
On fejl GoTo MyErrorTrap
' Clear areal a1 : G14 herunder enhver foregående kalenderår
Range (" a1 : G14 "). . Clear
' Brug InputBox at få den ønskede måned og år og indstille variable
' MyInput .
MyInput = InputBox ( "Type i Måned og år for Kalender" )
' Tillad brugeren at ende makro med Cancel i InputBox .
Hvis MyInput = " "Saa Exit Sub
'get den dato, værdien af i begyndelsen af indtastet måned.
StartDay = DateValue ( MyInput )
' Check , hvis gyldig dato , men ikke den første af den måned
' - hvis ja , skal du nulstille StartDay til første dag i måned
Hvis Day ( StartDay ) < > 1 så
StartDay = DateValue ( Month. ( StartDay ) & " /1 /" & _
Year ( StartDay ) )
End If
' Forbered celle til Måned og År som fuldt stavet ude.
Range (" a1 " ) TalFormat = " mmmm yyyy "
' Centrer Måned og År label på tværs af a1 : g1 med passende
' . størrelse, højde og fed skrift .
Med Range (" a1 : g1 "). . .
HorizontalAlignment = xlCenterAcrossSelection
VerticalAlignment = xlCenter
Font.Size = 18 < br . . >
Font.Bold = Sand
RowHeight = 35
End With
' Forbered a2 : g2 for dag i ugen etiketter med centrering , størrelse, < . br >
' højde og fed skrift
Med Range (" a2 : g2 "),
ColumnWidth = 11
VerticalAlignment = xlCenter
. HorizontalAlignment = xlCenter
. VerticalAlignment = xlCenter
. Orientation = xlHorizontal
. Font.Size = 12
. Font.Bold = Sand < br >
RowHeight = 20
End With
' Put dage af ugen i A2: . . g2
Range (" a2 " ) = " Sunday" < br >
Range (" b2 " ) = "Monday "
Range (" c2 " ) = " Tuesday"
Range (" d2 " ) = " onsdag"
Range (" e2 " ) = " Thursday"
Range (" f2" ) = "Friday "
Range (" g2 " ) = "Saturday "
' Forbered a3 : g7 for datoer med venstresidig /top justering , størrelse , højde
' . -og fed skrift
Med Range (" a3 : g8 ").
HorizontalAlignment = xlRight
. VerticalAlignment = xlTop
. Font.Size = 18
. Font.Bold = Sand
. RowHeight = 21
< p> End With
' Put inputted måned og år fuldt ud stave ud ind i " a1 " .
Range (" a1 "). Value = Application.Text ( MyInput , " mmmm yyyy" )
' Set variabel og få hvilke dag i ugen i måneden begynder.
dayOfWeek = WeekDay ( StartDay )
' Set variabler til at identificere den år og måned som separate < br >
' variabler.
CurYear = År ( StartDay )
CurMonth = måned ( StartDay )
' Set variable og beregne den første dag i den næste måned .
FinalDay = DateSerial ( CurYear , CurMonth + 1, 1)
'Place et "1" i celle placeringen af den første dag i den valgte
' baseret måned på dayOfWeek . "
Fjern de anførselstegnene på den første -og sidste linje af koden .
4
Kopier resten af koden , der tager det format fra koden ovenfor, og skabe den faktiske kalender . Indsæt koden højre under , hvor koden fra ovenstående ender.
"Select Case dayOfWeek
Case 1
Range (" a3 "). Value = 1
< p > Case 2
Range (" b3 "). Value = 1
Case 3
Range (" c3 "). Value = 1
Case 4
Range (" d3 "). Value = 1
Case 5
Range (" e3 "). Value = 1
sag 6
Range (" f3 "). Value = 1
sag 7
Range (" g3 "). Value = 1
End Vælg < br >
' Loop gennem rækkevidde a3 : g8 inkrementering hver celle efter "1 "
' cell
for Each celle In Range (" a3 : g8 ").
< p> RowCell = cell.Row
ColCell = cell.Column
' Do hvis der "1" er i første kolonne.
Hvis cell.Column = 1 And celle. Row = 3 Derefter
'Vil , hvis aktuelle celle ikke er i 1. kolonne.
ElseIf cell.Column < > 1 Så
Hvis cell.Offset (0, -1) . Value > = 1 Så
cell.Value = cell.Offset (0, -1) . Value + 1
' Stop, når den sidste dag i den måned har været
' indtastet
Hvis cell.Value > ( FinalDay - StartDay ) . Derefter
cell.Value = " "
' Exit loop , når calendar har korrekte antal af
' vist dage .
Exit for
End If
End If
' Må kun, hvis aktuelle celle er ikke i Række 3 og er i kolonne 1 .
ElseIf cell.Row > 3 og cell.Column = 1 Derefter
cell.Value = cell.Offset (-1, 6) . Value + 1
' Stop, når den sidste dag i måneden er blevet indtastet
Hvis cell.Value > ( FinalDay - StartDay ) . Derefter
cell.Value = " "
'Exit loop , når kalender har et korrekt antal dage
', der vises .
Exit for
End If
End If
Next
'Opret Adgangskrav celler , format dem centreret , wrap tekst, og border
"rundt dage.
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 = Sand
. Font.Size = 10
. Font.Bold = False
' Lås op for disse celler at være i stand til at indtaste tekst senere efter
' ark er beskyttet.
. låst = False
End With
' Put kant omkring blokken af datoer.
Med Range (" A3 "). Offset (x * 2 , 0) . Resize (2, _
7). Grænser ( xlLeft )
. Vægt = xlThick
. ColorIndex = xlAutomatic
End With
< p > Med Range (" A3 "). Offset (x * 2 , 0) . Resize (2, _
7). Borders ( xlRight )
. Vægt = xlThick
< p> . ColorIndex = xlAutomatic
End With
Range (" A3 "). Offset (x * 2 , 0) . Resize (2, 7). BorderAround _
< p > Vægt: = xlThick , ColorIndex : . . = xlAutomatic
Next
Hvis Range (" A13 " ) Value = "" Så Range (" A13 "), Offset ( 0, 0) _
. Resize (2, 8). EntireRow.Delete
'Slå off gitterlinjer .
ActiveWindow.DisplayGridlines = False
»beskytte ark for at forhindre overskrive de datoer,
ActiveSheet.Protect DrawingObjects : . = Sand , Indhold: = Sand , _
Scenarios : = Ægte
' Resize vindue til at vise alle kalender ( May nødt til at skal justeres
' til video konfiguration).
ActiveWindow.WindowState = xlMaximized
ActiveWindow.ScrollRow = 1
' Tillad skærm til at gentegne med kalender der viser .
Application.ScreenUpdating = Sand
»forhindre at gå til error trap , medmindre error findes ved at du afslutter Sub
' her.
Exit Sub < br >
'Fejl forårsager msgbox for at indikere problemet, tilvejebringer nye input box ,
' og genoptages, på den linje , der forårsagede fejlen
MyErrorTrap : .
MsgBox " Du har måske ikke har indtastet dit Måned og År korrekt . " _
& Chr (13) & " Stav den Month korrekt" _
& " ( eller bruge 3 bogstav forkortelse) "_
& Chr (13) &" samt 4 cifre for the Year "
MyInput = InputBox ( " Type i Måned og år for Kalender " )
< p> Hvis der MyInput = "" Så Exit Sub
Genoptag
End Sub "
Fjern de anførselstegnene på den første -og sidste linje af koden . Klik på "Gem "-ikonet på værktøjslinjen. Klik på " File" menupunktet og derefter " Luk og vend tilbage til Microsoft Excel. "
5.
Run de " CalendarMaker "-modulet . In Excel 2007/2010 , klik på "Udvikler " fanen og klik derefter på " Makroer. " I tidligere versioner af Excel , klik på " Funktioner, " point til " Makroer " , og derefter klikke på " Makroer. " Vælg " CalendarMaker " makro fra listen i det vindue der popper op , og derefter klikke på " Run . "