É de conhecimento de todos que desenvolvem que existem dois (ou ate mais) componentes activex de calendário, o Microsoft Calendar Control e o Month View Activex Control são alguns dos exemplos, para uso em projetos VB/VBA.
Especificamento em projetos VBA, o uso desses controles implica em validações de segurança no uso de componentes externos por parte dos aplicativos Office, como o Excel por exemplo. Isso significa que não há como fugir de algumas caixas de dialogos de aviso (nem mesmo via VBA, e não ha como desativa-las facilmente).
Um exemplo tipicos dessas mensagens é a de que componentes externos estão sendo inicializados pelo Excel;

Para contornar esse tipo de situação especificamente para o MS Calendar, resolvi criar o meu proprio controle de calendário totalmente em VBA

Para usa-lo é bem simples:
- Crie uma varável do tipo frmCalendar
- Exiba o formulário (Show)
- Aguarde a data que será clicada.
Segue abaixo um esboço do codigo
| Instruções de Uso |
| |
| 'Uso do Form calendar para retorno da data selecionada |
| Sub UsoCalendar() |
| 'Declarar uma variável do tipo frmCalendar |
| Dim FC As frmCalendar |
| Dim dtData As Date |
| 'Instancia |
| Set FC = New frmCalendar |
| 'Exibi o form e aguarda o dia selecionado |
| FC.Show |
| 'Devolve a data que foi clicado |
| dtData = FC.SelectDate |
| 'Descarrega o form |
| Unload FC |
| MsgBox dtData |
| End Sub |
Clique aqui para Baixar o arquivo
Att. Adelson RM Silva