Erstellen ein Monatskalenders in Excel

Der Support für Office 2003 wurde eingestellt

Microsoft stellte am 8. April 2014 den Support für Office 2003 ein. Diese Änderung wirkt sich auf Ihre Softwareupdates und Sicherheitsoptionen aus. Erfahren Sie, was das für Sie bedeutet und wie Sie Ihren Schutz aufrechterhalten können.

Wichtig: Dieser Artikel wurde maschinell übersetzt und wird dann möglicherweise mithilfe des Community Translation Framework (CTF) von Mitgliedern unserer Microsoft Community nachbearbeitet. Weitere Informationen zu CTF finden Sie unter http://support.microsoft.com/gp/machine-translation-corrections/de.

Den englischen Originalartikel können Sie über folgenden Link abrufen: 150774
Zusammenfassung
Dieser Artikel enthält ein Microsoft Visual Basic for Applications-Makro (Subprozedur), aufgefordert, den Monat und das Jahr und einen Monatskalender in einem Arbeitsblatt erstellt.
Lösung
Microsoft bietet Programmierbeispiele lediglich zur Veranschaulichung, ohne ausdrückliche oder konkludente Gewährleistung. Dies beinhaltet, ist jedoch nicht beschränkt auf, konkludente Gewährleistungen der Tauglichkeit oder Eignung für einen bestimmten Zweck. Dieser Artikel setzt voraus, dass Sie mit der von Beispielen verwendeten Programmiersprache und den Tools, die zum Erstellen und Debuggen von Prozeduren verwendet werden, vertraut sind. Microsoft-Supportmitarbeiter können bei der Erläuterung der Funktionalität bestimmter Prozeduren helfen, sie werden jedoch diese Beispiele nicht verändern um eine erweiterte Funktionalität aufzuzeigen oder Prozeduren entwickeln, die Ihren Anforderungen entsprechen.

Gehen Sie folgendermaßen vor, um den Kalender zu erstellen.

Microsoft Excel2003

  1. Erstellen Sie eine neue Arbeitsmappe.
  2. Im Menü Extras auf Makro und klicken Sie dann auf Visual Basic-Editor.
  3. Klicken Sie im Menü Einfügen auf Modul.
  4. Kopieren Sie Visual Basic for Applications-Code unten in Moduls Blatt.
  5. Klicken Sie im Menü Datei auf "Schließen und zurück zu geeignet."
  6. Klicken Sie auf die Registerkarte Tabelle1.
  7. Klicken Sie im Menü Extras auf Makro und klicken Sie auf Makros.
  8. Klicken Sie auf CalendarMaker, und klicken Sie dann auf Ausführen, um den Kalender zu erstellen.

Microsoft Excel 2007 oder höher

  1. Erstellen Sie eine neue Arbeitsmappe.
  2. Auf der Multifunktionsleiste Entwickler Visual Basic klicken.
  3. Klicken Sie im Menü Einfügen auf Modul.
  4. Kopieren Sie das Visual Basic for Applications-Code in das Modulblatt.
  5. Klicken Sie im Menü Datei auf "Schließen und zurück zu Microsoft Excel".
  6. Klicken Sie auf die Registerkarte Tabelle1.
  7. Klicken Sie auf der Multifunktionsleiste Entwickler auf Makros
  8. Klicken Sie auf CalendarMaker, und klicken Sie dann auf Ausführen, um den Kalender zu erstellen.

Hinweis: Wenn Entwickler Band ist nicht angezeigt zur Excel-Optionen und aktivieren. In Excel 2007 finden Sie es im Menü beliebte und in Excel 2010 es im Menüband anpassen Menü Sie finden.

Beispiel für Visual Basic-Prozedur

  Sub CalendarMaker()       ' Unprotect sheet if had previous calendar to prevent error.       ActiveSheet.Protect DrawingObjects:=False, Contents:=False, _          Scenarios:=False       ' Prevent screen flashing while drawing calendar.       Application.ScreenUpdating = False       ' Set up error trapping.       On Error GoTo MyErrorTrap       ' Clear area a1:g14 including any previous calendar.       Range("a1:g14").Clear       ' Use InputBox to get desired month and year and set variable       ' MyInput.       MyInput = InputBox("Type in Month and year for Calendar ")       ' Allow user to end macro with Cancel in InputBox.       If MyInput = "" Then Exit Sub       ' Get the date value of the beginning of inputted month.       StartDay = DateValue(MyInput)       ' Check if valid date but not the first of the month       ' -- if so, reset StartDay to first day of month.       If Day(StartDay) <> 1 Then           StartDay = DateValue(Month(StartDay) & "/1/" & _               Year(StartDay))       End If       ' Prepare cell for Month and Year as fully spelled out.       Range("a1").NumberFormat = "mmmm yyyy"       ' Center the Month and Year label across a1:g1 with appropriate       ' size, height and bolding.       With Range("a1:g1")           .HorizontalAlignment = xlCenterAcrossSelection           .VerticalAlignment = xlCenter           .Font.Size = 18           .Font.Bold = True           .RowHeight = 35       End With       ' Prepare a2:g2 for day of week labels with centering, size,       ' height and bolding.       With Range("a2:g2")           .ColumnWidth = 11           .VerticalAlignment = xlCenter           .HorizontalAlignment = xlCenter           .VerticalAlignment = xlCenter           .Orientation = xlHorizontal           .Font.Size = 12           .Font.Bold = True           .RowHeight = 20       End With       ' Put days of week in a2:g2.       Range("a2") = "Sunday"       Range("b2") = "Monday"       Range("c2") = "Tuesday"       Range("d2") = "Wednesday"       Range("e2") = "Thursday"       Range("f2") = "Friday"       Range("g2") = "Saturday"       ' Prepare a3:g7 for dates with left/top alignment, size, height       ' and bolding.       With Range("a3:g8")           .HorizontalAlignment = xlRight           .VerticalAlignment = xlTop           .Font.Size = 18           .Font.Bold = True           .RowHeight = 21       End With       ' Put inputted month and year fully spelling out into "a1".       Range("a1").Value = Application.Text(MyInput, "mmmm yyyy")       ' Set variable and get which day of the week the month starts.       DayofWeek = WeekDay(StartDay)       ' Set variables to identify the year and month as separate       ' variables.       CurYear = Year(StartDay)       CurMonth = Month(StartDay)       ' Set variable and calculate the first day of the next month.       FinalDay = DateSerial(CurYear, CurMonth + 1, 1)       ' Place a "1" in cell position of the first day of the chosen       ' month based on DayofWeek.       Select Case DayofWeek           Case 1               Range("a3").Value = 1           Case 2               Range("b3").Value = 1           Case 3               Range("c3").Value = 1           Case 4               Range("d3").Value = 1           Case 5               Range("e3").Value = 1           Case 6               Range("f3").Value = 1           Case 7               Range("g3").Value = 1       End Select       ' Loop through range a3:g8 incrementing each cell after the "1"       ' cell.       For Each cell In Range("a3:g8")           RowCell = cell.Row           ColCell = cell.Column           ' Do if "1" is in first column.           If cell.Column = 1 And cell.Row = 3 Then           ' Do if current cell is not in 1st column.           ElseIf cell.Column <> 1 Then               If cell.Offset(0, -1).Value >= 1 Then                   cell.Value = cell.Offset(0, -1).Value + 1                   ' Stop when the last day of the month has been                   ' entered.                   If cell.Value > (FinalDay - StartDay) Then                       cell.Value = ""                       ' Exit loop when calendar has correct number of                       ' days shown.                       Exit For                   End If               End If           ' Do only if current cell is not in Row 3 and is in Column 1.           ElseIf cell.Row > 3 And cell.Column = 1 Then               cell.Value = cell.Offset(-1, 6).Value + 1               ' Stop when the last day of the month has been entered.               If cell.Value > (FinalDay - StartDay) Then                   cell.Value = ""                   ' Exit loop when calendar has correct number of days                   ' shown.                   Exit For               End If           End If       Next       ' Create Entry cells, format them centered, wrap text, and border       ' around days.       For x = 0 To 5           Range("A4").Offset(x * 2, 0).EntireRow.Insert           With Range("A4:G4").Offset(x * 2, 0)               .RowHeight = 65               .HorizontalAlignment = xlCenter               .VerticalAlignment = xlTop               .WrapText = True               .Font.Size = 10               .Font.Bold = False               ' Unlock these cells to be able to enter text later after               ' sheet is protected.               .Locked = False           End With           ' Put border around the block of dates.           With Range("A3").Offset(x * 2, 0).Resize(2, _           7).Borders(xlLeft)               .Weight = xlThick               .ColorIndex = xlAutomatic           End With           With 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 _              Weight:=xlThick, ColorIndex:=xlAutomatic       Next       If Range("A13").Value = "" Then Range("A13").Offset(0, 0) _          .Resize(2, 8).EntireRow.Delete       ' Turn off gridlines.       ActiveWindow.DisplayGridlines = False       ' Protect sheet to prevent overwriting the dates.       ActiveSheet.Protect DrawingObjects:=True, Contents:=True, _          Scenarios:=True       ' Resize window to show all of calendar (may have to be adjusted       ' for video configuration).       ActiveWindow.WindowState = xlMaximized       ActiveWindow.ScrollRow = 1       ' Allow screen to redraw with calendar showing.       Application.ScreenUpdating = True       ' Prevent going to error trap unless error found by exiting Sub       ' here.       Exit Sub   ' Error causes msgbox to indicate the problem, provides new input box,    ' and resumes at the line that caused the error.   MyErrorTrap:       MsgBox "You may not have entered your Month and Year correctly." _           & Chr(13) & "Spell the Month correctly" _           & " (or use 3 letter abbreviation)" _           & Chr(13) & "and 4 digits for the Year"       MyInput = InputBox("Type in Month and year for Calendar")       If MyInput = "" Then Exit Sub       Resume   End Sub				
Fügen Sie anderen Code Kalenders Ihren Bedürfnissen anpassen. Legen Sie zusätzliche Zeilen auf dem Bildschirm für jeden Tag oder passen Sie die Bildschirmgröße zum Anzeigen aller den Kalender je nach Bildschirmgröße und Auflösung.
XL2003 XL2007 XL2010

Warnung: Dieser Artikel wurde automatisch übersetzt.

Свойства

ИД на статията: 150774 – Последен преглед: 09/26/2016 20:46:00 – Редакция: 6.0

Microsoft Office Excel 2003, Microsoft Office Excel 2007, Microsoft Excel 2010, Excel 2016

  • kbautomation kbdtacode kbhowto kbprogramming kbmt KB150774 KbMtde
Обратна връзка