Microsoft Excel é um ambiente ideal para criar e manter um calendário. Usando as diferentes células , você pode facilmente passar de um dia para outro para atualizar o calendário ou adicionar novos eventos e compromissos. Não é difícil criar um calendário no Excel. A Microsoft forneceu uma macro CalendarMaker simples que insere no editor do Visual Basic no Excel que irá criar o calendário para você. Tudo que você precisa fazer é copiar o código para ter o seu calendário mensal no Excel. Instruções
1
Abra o Microsoft Excel. Clique no menu "Ferramentas" , aponte para "Macro" e clique em " Editor do Visual Basic " se estiver usando Excel 2003 ou anterior. Para o Excel 2007/2010 , clique na guia "Desenvolvedor" e , em seguida, clique em " Visual Basic ". Se você não vir a guia "Desenvolvedor" , clique no botão " Escritório " e depois em " Opções do Excel ". Na primeira tela , clique na caixa de seleção ao lado de " Mostrar guia Desenvolvedor na Faixa de Opções " e clique em "OK". A guia "Desenvolvedor" deve mostrar agora.
2
Clique no botão " Insert" item de menu no Editor do Visual Basic. Clique em " Módulo " para iniciar um novo módulo de código
3
Copie a primeira parte do código a seguir no novo módulo : .
"Sub CalendarMaker ()
' desproteger folha se tinha civil anterior para evitar erro
ActiveSheet.Protect DrawingObjects : . = False , Contents : = False, _
Cenários : = False
' Impedir tela piscando enquanto desenha calendário.
Application.ScreenUpdating = False
' Configurar interceptação de erro .
On Error GoTo MyErrorTrap
' Limpar a1 área : . g14 incluindo qualquer calendário anterior
Range. ( "a1 : g14 " ) Limpar
'Use InputBox para obter desejado mês e ano e definir
variável ' myInput .
myInput = InputBox ( " Digite Mês e ano de calendário" )
' Permitir que o usuário acabar com macro Cancelar na InputBox .
Se myInput = " " Then Exit Sub
" Obter o valor da data do início do mês digitada.
StartDay = DateValue ( myInput )
' Verifique se a data válido, mas não o primeiro de o mês
'- em caso afirmativo, redefinir StartDay primeiro dia do mês
Se Day ( StartDay ) < > 1 Então
StartDay = DateValue (mês . ( StartDay ) & " /1 /" & _
Year ( StartDay ) )
End If
' Prepare celular para o mês eo ano como totalmente explicadas.
Range (" a1" ) NumberFormat = " aaaa mmmm"
' Centro de etiqueta Mês e Ano em todo a1 : g1 com
apropriado
. tamanho , altura e negrito .
Com Range. . . ( "a1 : g1 " )
HorizontalAlignment = xlCenterAcrossSelection
VerticalAlignment = xlCenter
Font.Size = 18 < br . . >
Font.Bold = True
AlturaDaLinha = 35
End With
' Prepare a2 : g2 para o dia dos rótulos semana com centragem , o tamanho
' altura e negrito
Com Range. . . ( " A2: g2 " )
ColumnWidth = 11
VerticalAlignment = xlCenter
. HorizontalAlignment = xlCenter
. VerticalAlignment = xlCenter
. Orientação = xlHorizontal
. Font.Size = 12
. Font.Bold = True < . br>
AlturaDaLinha = 20
End With
' Coloque dias da semana em a2 : . g2
Range (" A2 ") = " domingo "
Range (" B2 ") = "Segunda"
Range (" c2 ") = " terça-feira"
Range (" d2 ") = "Quarta "
Range (" e2 ") = " quinta-feira"
Range (" F2" ) = " Friday"
Range (" g2 ") = "Sábado"
' Prepare a3 : g7 para datas com a esquerda /topo alinhamento , tamanho , altura
' . e negrito
com Range. ( " A3: g8 " )
HorizontalAlignment = xlRight
. VerticalAlignment = xlTop
. Font.Size = 18
. Font.Bold = True
. AlturaDaLinha = 21
End With
' Coloque mês introduzido e ano soletrando totalmente para fora "a1" .
Range (" A1") . Value = Application.Text ( myInput , " aaaa mmmm" )
'Definir variável e obter o dia da semana, os meses começa.
DayofWeek = WeekDay ( StartDay )
' Definir variáveis para identificar o ano eo mês como separado < variáveis.
CurYear = Year ( StartDay )
curmonth = mês ( StartDay )
' br >
Definir variável e calcular o primeiro dia do próximo mês .
FinalDay = DateSerial ( CurYear , curmonth + 1, 1)
'Place um "1" na posição de célula do primeiro dia do escolhido
' mês com base em DayofWeek . "
Remova as aspas na primeira e na última linha do código.
4
Copie o resto do código que leva o formato do código acima e criar o calendário real . Cole o código de direito em que o código das extremidades superiores .
" Select Case DayofWeek
Caso 1
Range (" A3 " ) . Valor = 1
Caso 2
Range (" B3 " ) . Valor = 1
caso
3
Range (" c3 " ) . Valor = 1
caso 4
Range (" d3 " ) . Valor = 1
caso
5
Range (" E3 " ) . Valor = 1
caso
6
Range (" F3" ) . Valor = 1
caso
7
Range (" g3 " ) . Valor = 1
End Select < br >
'Loop através de gama A3: g8 incrementando cada célula após o "1"
. célula
para cada célula range (" A3: g8 " )
RowCell = cell.Row
ColCell = cell.Column
' fazer se "1" está na primeira coluna.
Se cell.Column = 1 e celular. Row = 3 Então
'Faça se a célula atual não está na primeira coluna.
ElseIf cell.Column < > 1 Então
Se cell.Offset ( 0, -1). Valor > = 1 Então
Cell.Value = cell.Offset (0 , -1) . Valor + 1
Parar '
quando o último dia do mês foi
' entrou
Se Cell.Value > . ( FinalDay - StartDay ) Então
Cell.Value = ""
' loop de saída quando o calendário tem número correto de
dias mostrado .
Exit For
End If End If
'Faça apenas se a célula atual não está na linha 3 e está na coluna 1.
ElseIf cell.Row > 3 E cell.Column = 1 Então
Cell.Value = cell.Offset (-1, 6) . . Parar Valor + 1
' quando o último dia do mês foi inserido
Se Cell.Value > ( FinalDay - StartDay ) Então
Cell.Value = ""
' loop de saída quando o calendário tem o número correto de dias
' mostrado .
Exit For
End If
End If
Próxima
'Criar células de entrada , formatá-los centrado, quebrar o texto , e
fronteira
' em torno de dias.
Para x = 0 To . 5
Range (" A4 " ) Compensação (x * 2, 0) EntireRow.Insert
Com Range. . ( " A4: G4 " ) Compensação (x * 2, 0)
. AlturaDaLinha = 65
. HorizontalAlignment = xlCenter
. VerticalAlignment = xlTop
. WrapText = True
. Font.Size = 10
. Font.Bold = False
'Desbloquear essas células para ser capaz de inserir o texto mais tarde, após
' folha está protegida.
. Fechado = False
End With
' Coloque borda ao redor do bloco de datas.
Com Range (" A3 " ) . Deslocamento (x * 2, 0). Redimensionar (2, _
7). Fronteiras ( xlLeft )
. Peso = xlThick
. ColorIndex = xlAutomatic
End With
Com Range (" A3 " ) . Deslocamento (x * 2, 0). Redimensionar (2, _
7). Fronteiras ( xlRight )
. Peso = xlThick
. ColorIndex = xlAutomatic
End With
Range (" A3 " ) . Deslocamento (x * 2, 0). Redimensionar (2, 7). BorderAround _
Peso: = xlThick , ColorIndex : . . = xlAutomatic
Próxima
Se Range (" A13 " ) Valor = "" Then Range (" A13 " ) Compensação ( 0, 0) _
. Resize (2, 8). EntireRow.Delete
' Desligue as linhas de grade .
ActiveWindow.DisplayGridlines =
Falso
' Proteger folha para evitar sobrescrever as datas
ActiveSheet.Protect DrawingObjects : . = true , o conteúdo : = True , _
cenários: = True
" Redimensionar a janela para mostrar todos calendário ( pode têm de ser ajustados
' para a configuração de vídeo ) .
ActiveWindow.WindowState = xlMaximized
ActiveWindow.ScrollRow = 1
' Permitir tela para redesenhar com calendário mostrando.
Application.ScreenUpdating = True
' Prevenir indo ao erro armadilha a menos erro encontrado por sair
Sub
' aqui.
Exit Sub
' causas de erro msgbox para indicar o problema, fornece uma nova caixa de entrada,
' e retoma a linha que causou o erro
MyErrorTrap : .
MsgBox " Você não pode ter introduzido o seu Mês e Ano corretamente. " _
& Chr (13) e " Magia do Mês corretamente " _
& " (ou usar 3 letras abreviatura ) "_
& Chr (13 ) &" e 4 dígitos para o ano "
myInput = InputBox ( " Digite Mês e ano de calendário " )
Se myInput = "" Then Exit Sub
Resume
End Sub "
Remova as aspas na primeira e na última linha do código. Clique no ícone "Salvar" na barra de ferramentas . Clique no botão " Arquivo" item de menu e , em seguida, em "Fechar e voltar para o Microsoft Excel ".
5
Execute o módulo " CalendarMaker " . No Excel 2007/2010 , clique na guia "Desenvolvedor" e , em seguida, clique em " Macros ". Em versões anteriores do Excel, clique em " Ferramentas ", aponte para " Macros " e depois clique em " Macros ". Selecione a macro " CalendarMaker " da lista na janela que aparece e , em seguida, clique em " Executar".