Important:

Quaisquer soluções e/ou desenvolvimento de aplicações pessoais, ou da empresa, que não constem neste Blog podem ser tratados como consultoria freelance.

...

Views

26 de janeiro de 2013

Excel Tips - Calendário Compacto para 2013 - THE COMPACT CALENDAR 2013





Manter o controle sobre diversos projetos e atividades em andamento é um desafio! 

Acompanharmos as diversas fases em vários cronogramas exige certa disciplina que, ao ser bem executada, e tendo uma boa ferramenta de apoio, pode ser bem recompensada.

O que se segue é uma versão traduzida de um Calendário Compacto para 2013, desenvolvido por David Seah.

Este calendário tem uma apresentação compacta, dividida em semanas, e linhas numeradas numa planilha Excel. Usá-lo pode nos ajudar a avaliarmos melhor a duração dos eventos previstos nas semanas do ano.


Esta versão de calendário é ideal para projetos onde se planeja controlar as várias fases de uma implementação. Sua impressão está posicionada na margem esquerda de uma folha A4, proporcionando muito espaço para comentários e anotações.


Este Calendário Compacto é um Calendário de Planejamento muito versátil e fácil de personalizar e imprimir a partir do Microsoft Excel. Vem em três diferentes estilos semanais.
12-month calendar in Excel 2007To add a holiday, just type in the date in the first column and a note in the second. The rest of this is for fancy formatting.The instructions worksheet reminds you how to modify things








Por padrão, o calendário inclui os feriados americanos destacados em vermelho, mas podemos inserir outros eventos.

Solicite uma versão 

Enviarei uma cópia a todos que deixaram um comentário junto com o seu endereço de e-mail neste POST(Acesse ao link do post, pois este artigo está sendo replicado em vários blogs)

Calendário Compacto é simples para imprimir. Encaixa-se em uma única página, as semanas são apresentadas como uma pilha de tempo disponível, é fácil bloquear os dias naturalmente, fazendo anotações sobre reuniões, feriados e fins de semana.

Modificando o Calendário Compacto

Precisará ter o Microsoft Excel 2007 ou versão posterior para modificar os arquivos xltx do Calendário Compacto. Se estiver usando uma versão anterior do Office no Windows, utilize este service pack para download a partir do site da Microsoft para ajudá-lo.

NOTA: O Calendário Compacto está salvo como um modelo do Excel (xltx). Se clicar duas vezes em um arquivo de modelo do Excel, ele abre uma cópia que salvará sem modificar o modelo mestre. Se quiser editar o modelo em si, deve abrí-lo como um modelo do MS Excel.

Por favor, note que é necessário o Microsoft Excel 2007 ou versão mais recente .Outros softwares como o Open OfficeGoogle Docs, e outros podem importar a planilha Excel, mas devido as diferenças na maneira de lidar com as datas faz necessário que se certifique que os calendários estão corretos.

Tags: Excel, tips, calendário, calendar, download, David Seah, xltx, Office, MS Office, 



23 de janeiro de 2013

VBA Tips - Envie emails diretamente através do BOL e UOL - Send Email using brazilian free Account - BOL


Pode ser que prefiramos enviar os nossos relatórios através de uma conta externa ao nosso email corporativo para não sobrecarregar o servidor e desse modo utilizemos uma conta externa para isso. 
Neste exemplo utilizaremos o UOL ou BOL.

O endereço do servidor SMTP do BOL/UOL é "smtps.bol.com.br". Ele suporta conexão SSL para fazer a autenticação do usuário, e devemos usar o seu endereço de email do BOL/UOL, como o nome do usuário de autenticação SMTP. Por exemplo: seu e-mail é "bernardess@bol.com.br", e em seguida o nome do usuário deve ser "bernardess@bol.com.br".

Se quisermos fazer uso da conexão SSL do servidor SMTP no BOL/UOL, precisaremos definir a porta para 465 ou 587. 

Secure Socket Layer - SSL

É um padrão global em tecnologia de segurança desenvolvida pela Netscape em 1994. Ele cria um canal criptografado entre um servidor web e um navegador (browser) para garantir que todos os dados transmitidos sejam sigilosos e seguros. Milhões de consumidores reconhecem o "cadeado dourado" que aparece nos navegadores quando estão acessando um website seguro. 

Quando escolher ativar o SSL no seu servidor web você terá que responder algumas questões sobre a identidade do seu site (ex. a URL) e da sua empresa (ex. a Razão Social e o endereço). Seu servidor web então criará duas chaves criptográficas - a Chave Privada (Private Key) e a Chave Pública (Public Key). Sua Chave Privada não possui esse nome à toa - ela deve ser mantida privada e segura. Já a Chave Pública não necessita ser secreta e deve ser colocada na CSR (Certificate Signing Request) - um arquivo de dados contendo os detalhes do site e da empresa. Você deverá enviar esta CSR através do formulário de solicitação em nosso site, seus dados serão validados e se estiverem corretos seu certificado digital será emitido.

Seu servidor web irá associar o certificado emitido com a sua Chave Privada. Seu servidor irá estebelecer um link criptografado entre seu website e o navegador do seu consumidor.

Transport Layer Security - TLS

É um protocolo criptográfico cuja função é conferir segurança para a comunicação na Internet para serviços como email (SMTP), navegação por páginas (HTTP) e outros tipos de transferência de dados.

Simple Mail Transfer Protocol - SMTP  

É protocolo que transfere emails, é instalado como parte dos serviços de email junto o serviço POP3. O SMTP controla como o email é transportado e entregue através da Internet ao servidor de destino. O serviço SMTP envia e recebe emails entre os servidores, ao passo que o serviço POP3 recupera o email do servidor de email para o computador do usuário.

Extended Simple Mail Transfer Protocol - ESMTP  

ESMTP é uma definição de extensões de protocolo para o padrão Simple Mail Transfer Protocol. O formato da extensão foi definido na RFC 1869 em 1995. A RFC 1869 estabeleceu uma estrutura para as atuais e futuras extensões, para produzir um meio gerenciável e consistente pelo qual os clientes e servidores SMTP possam ser identificados e servidores SMTP possam indicar extensões suportadas para clientes conectados.

O código a seguir demonstrará como enviar e-mail usando o servidor SMTP do Hotmail / MSN Live.

Para tornar o seu projeto funcional faça o download e instale o
EASendMail em sua máquina.

Não deixe de adicionar a referência ao controle ActiveX de SMTP do objeto EASendMail no seu projeto. 

Inline image 1

Lembre-se, antes de executá-lo corretamente, por favor, mude o servidor SMTPusuáriosenharemetente, e destinatário conforme a conta a ser utilizada.

Private Sub btnSendMail_Click() 

    Dim oSmtp As New EASendMailObjLib.Mail 
    Let oSmtp.LicenseCode = "TryIt" 

    ' Set your Yahoo email address
    Let oSmtp.FromAddr = "bernardess@bol.com.br

    ' Add recipient email address
    oSmtp.AddRecipientEx "bernardess@gmail.com", 0 

    ' Set email subject
    Let oSmtp.Subject = "Teste de envio de email a partir da minha conta do UOL/BOL" 

    ' Set email body
    Let oSmtp.BodyText = "Teste de envio de email com VBA a partir da minha conta do UOL/BOL" 

    ' Yahoo SMTP server address
    Let oSmtp.ServerAddr = "smtps.bol.com.br

    ' For example: your email is "bernardess@bol.com.br", then the user should be "bernardess@bol.com.br"
    Let oSmtp.UserName = "bernardess@bol.com.br
    Let oSmtp.Password = "<Digite a sua senha aqui>" 

    ' Because Yahoo deploys SMTP server on 465 port with direct SSL connection.
    ' So we should change the port to 465 ou 587.
    Let oSmtp.ServerPort = 465 ' or 587

    ' Detect SSL/TLS automatically
    oSmtp.SSL_init 

    MsgBox "Iniciando o envio do email. . . " 

    If oSmtp.SendMail() = 0 Then 
        MsgBox "O email foi enviado com sucesso!" 
    Else 
        MsgBox "Falha no envio de email - Erro nº: " & oSmtp.GetLastErrDescription() 
    End If 

End Sub 

Tags: VBA, UOL, BOL, email, e-mail, SMTP, SSL, TLS, ESMTP, HTTP, CSR, RFC 1869, 

VBA Tips - Envie emails através do Yahoo - Send Email using Yahoo Account


Pode ser que prefiramos enviar os nossos relatórios através de uma conta externa ao nosso email corporativo para não sobrecarregar o servidor e desse modo utilizemos uma conta externa para isso. 
Neste exemplo utilizaremos o Yahoo.

O endereço do servidor SMTP do Yahoo é "smtp.mail.yahoo.com". Ele suporta conexão normal e SSL para fazer a autenticação do usuário, e devemos usar o seu endereço de email do Yahoo, como o nome do usuário de autenticação ESMTP. Por exemplo: seu e-mail é "bernardess@yahoo.com", e em seguida o nome do usuário deve ser "bernardess@yahoo.com".

Se quisermos fazer uso da conexão SSL do servidor SMTP no Yahoo, precisaremos definir a porta para 465. 

Secure Socket Layer - SSL

É um padrão global em tecnologia de segurança desenvolvida pela Netscape em 1994. Ele cria um canal criptografado entre um servidor web e um navegador (browser) para garantir que todos os dados transmitidos sejam sigilosos e seguros. Milhões de consumidores reconhecem o "cadeado dourado" que aparece nos navegadores quando estão acessando um website seguro. 

Quando escolher ativar o SSL no seu servidor web você terá que responder algumas questões sobre a identidade do seu site (ex. a URL) e da sua empresa (ex. a Razão Social e o endereço). Seu servidor web então criará duas chaves criptográficas - a Chave Privada (Private Key) e a Chave Pública (Public Key). Sua Chave Privada não possui esse nome à toa - ela deve ser mantida privada e segura. Já a Chave Pública não necessita ser secreta e deve ser colocada na CSR (Certificate Signing Request) - um arquivo de dados contendo os detalhes do site e da empresa. Você deverá enviar esta CSR através do formulário de solicitação em nosso site, seus dados serão validados e se estiverem corretos seu certificado digital será emitido.

Seu servidor web irá associar o certificado emitido com a sua Chave Privada. Seu servidor irá estebelecer um link criptografado entre seu website e o navegador do seu consumidor.

Transport Layer Security - TLS

É um protocolo criptográfico cuja função é conferir segurança para a comunicação na Internet para serviços como email (SMTP), navegação por páginas (HTTP) e outros tipos de transferência de dados.

Simple Mail Transfer Protocol - SMTP  

É protocolo que transfere emails, é instalado como parte dos serviços de email junto o serviço POP3. O SMTP controla como o email é transportado e entregue através da Internet ao servidor de destino. O serviço SMTP envia e recebe emails entre os servidores, ao passo que o serviço POP3 recupera o email do servidor de email para o computador do usuário.

Extended Simple Mail Transfer Protocol - ESMTP  

ESMTP é uma definição de extensões de protocolo para o padrão Simple Mail Transfer Protocol. O formato da extensão foi definido na RFC 1869 em 1995. A RFC 1869 estabeleceu uma estrutura para as atuais e futuras extensões, para produzir um meio gerenciável e consistente pelo qual os clientes e servidores SMTP possam ser identificados e servidores SMTP possam indicar extensões suportadas para clientes conectados.

O código a seguir demonstrará como enviar e-mail usando o servidor SMTP do Hotmail / MSN Live.

Para tornar o seu projeto funcional faça o download e instale o
EASendMail em sua máquina.

Não deixe de adicionar a referência ao controle ActiveX de SMTP do objeto EASendMail no seu projeto. 

Inline image 1

Lembre-se, antes de executá-lo corretamente, por favor, mude o servidor SMTPusuáriosenharemetente, e destinatário conforme a conta a ser utilizada.

' The following example codes demonstrate sending email message using Yahoo SMTP Server
' To get full sample projects, please download and install EASendMail on your machine.
' To run it correctly, please change SMTP server, user, password, sender, recipient value to yours

Private Sub btnSendMail_Click() 

    Dim oSmtp As New EASendMailObjLib.Mail 
    Let oSmtp.LicenseCode = "TryIt" 

    ' Set your Yahoo email address
    Let oSmtp.FromAddr = "myid@yahoo.com

    ' Add recipient email address
    oSmtp.AddRecipientEx "support@emailarchitect.net", 0 

    ' Set email subject
    Let oSmtp.Subject = "Teste de envio de email a partir da minha conta do Yahoo" 

    ' Set email body
    Let oSmtp.BodyText = "Teste de envio de email com VBA a partir da minha conta do Yahoo" 

    ' Yahoo SMTP server address
    Let oSmtp.ServerAddr = "smtp.mail.yahoo.com

    ' For example: your email is "myid@yahoo.com", then the user should be "myid@yahoo.com"
    Let oSmtp.UserName = "bernardess@yahoo.com
    Let oSmtp.Password = "<Digite a sua senha aqui>" 

    ' Because Yahoo deploys SMTP server on 465 port with direct SSL connection.
    ' So we should change the port to 465.
    Let oSmtp.ServerPort = 465 

    ' Detect SSL/TLS automatically
    oSmtp.SSL_init 

    MsgBox "Iniciando o envio do email. . . " 

    If oSmtp.SendMail() = 0 Then 
        MsgBox "O email foi enviado com sucesso!" 
    Else 
        MsgBox "Falha no envio de email - Erro nº: " & oSmtp.GetLastErrDescription() 
    End If 

End Sub 

Tags: VBA, Yahoo, email, e-mail, SMTP, SSL, TLS, ESMTP, HTTP, CSR, RFC 1869, 

VBA Tips - Envie emails através do Hotmail e MSN Live - Send Email using Hotmail, MSN Live


Neste exemplo utilizaremos o Hotmail ou o MSN Live. Pode ser que prefiramos enviar os nossos relatórios através de uma conta externa ao nosso email corporativo para não sobrecarregar o servidor. Assim, utilizamos uma conta externa para isso.

O endereço do servidor SMTP do Hotmail / MSN  é "smtp.live.com". Ele requer conexão TSL para fazer a autenticação do usuário, e devemos usar o endereço do email Live como o nome do usuário para autenticação ESMTP. Por exemplo: seu e-mail é "liveid@hotmail.com", e em seguida o nome do usuário será "myid@hotmail.com".

Secure Socket Layer - SSL

É um padrão global em tecnologia de segurança desenvolvida pela Netscape em 1994. Ele cria um canal criptografado entre um servidor web e um navegador (browser) para garantir que todos os dados transmitidos sejam sigilosos e seguros. Milhões de consumidores reconhecem o "cadeado dourado" que aparece nos navegadores quando estão acessando um website seguro. 

Quando escolher ativar o SSL no seu servidor web você terá que responder algumas questões sobre a identidade do seu site (ex. a URL) e da sua empresa (ex. a Razão Social e o endereço). Seu servidor web então criará duas chaves criptográficas - a Chave Privada (Private Key) e a Chave Pública (Public Key). Sua Chave Privada não possui esse nome à toa - ela deve ser mantida privada e segura. Já a Chave Pública não necessita ser secreta e deve ser colocada na CSR (Certificate Signing Request) - um arquivo de dados contendo os detalhes do site e da empresa. Você deverá enviar esta CSR através do formulário de solicitação em nosso site, seus dados serão validados e se estiverem corretos seu certificado digital será emitido.

Seu servidor web irá associar o certificado emitido com a sua Chave Privada. Seu servidor irá estebelecer um link criptografado entre seu website e o navegador do seu consumidor.

Transport Layer Security - TLS

É um protocolo criptográfico cuja função é conferir segurança para a comunicação na Internet para serviços como email (SMTP), navegação por páginas (HTTP) e outros tipos de transferência de dados.

Simple Mail Transfer Protocol - SMTP  

É protocolo que transfere emails, é instalado como parte dos serviços de email junto o serviço POP3. O SMTP controla como o email é transportado e entregue através da Internet ao servidor de destino. O serviço SMTP envia e recebe emails entre os servidores, ao passo que o serviço POP3 recupera o email do servidor de email para o computador do usuário.

Extended Simple Mail Transfer Protocol - ESMTP  

ESMTP é uma definição de extensões de protocolo para o padrão Simple Mail Transfer Protocol. O formato da extensão foi definido na RFC 1869 em 1995. A RFC 1869 estabeleceu uma estrutura para as atuais e futuras extensões, para produzir um meio gerenciável e consistente pelo qual os clientes e servidores SMTP possam ser identificados e servidores SMTP possam indicar extensões suportadas para clientes conectados.

O código a seguir demonstrará como enviar e-mail usando o servidor SMTP do Hotmail / MSN Live.

Para tornar o seu projeto funcional faça o download e instale o
EASendMail em sua máquina.

Não deixe de adicionar a referência ao controle ActiveX de SMTP do objeto EASendMail no seu projeto. 

Inline image 1

Lembre-se, antes de executá-lo corretamente, por favor, mude o servidor SMTPusuáriosenharemetente, e destinatário conforme a conta a ser utilizada.

' The following example codes demonstrate sending email message using Hotmail/MSN Live SMTP Server
' To get full sample projects, please download and install EASendMail on your machine.
' To run it correctly, please change SMTP server, user, password, sender, recipient value to yours

Private Sub btnSendMail_Click() 

    Dim oSmtp As New EASendMailObjLib.Mail 
    Let oSmtp.LicenseCode = "TryIt" 

    ' Set your Hotmail email address
    Let oSmtp.FromAddr = "liveid@hotmail.com

    ' Add recipient email address
    oSmtp.AddRecipientEx "support@emailarchitect.net", 0 

    ' Set email subject
    Let oSmtp.Subject = "Teste de email a partir da conta do Hotmail." 

    ' Set email body
    Let oSmtp.BodyText = "Teste de email com VBA a partir da conta do Hotmail." 

    ' Hotmail SMTP server address
    Let oSmtp.ServerAddr = "smtp.live.com

    ' Hotmail user authentication should use your
    ' Hotmail email address as the user name.
    Let oSmtp.UserName = "liveid@hotmail.com
    Let oSmtp.Password = "<Digite aqui a sua senha>" 

    ' detect SSL/TLS connection automatically
    oSmtp.SSL_init 

    MsgBox "Início do envio de emails." 

    If oSmtp.SendMail() = 0 Then 
        MsgBox "Os emails foram enviados com sucesso!" 
    Else 
        MsgBox "Falha ao enviar email - Erro nº: " & oSmtp.GetLastErrDescription() 
    End If 

End Sub 

Tags: VBA, MSN, Hotmail, email, e-mail, SMTP, SSL, TLS, ESMTP, HTTP, CSR, RFC 1869, 

VBA Tips - Envie emails através do GMail - Send Email using Gmail Account


Pode ser que prefiramos enviar os nossos relatórios através de uma conta externa ao nosso email corporativo para não sobrecarregar o servidor. Assim, utilizamos uma conta externa para isso. No exemplo abaixo elegi o Gmail da Google.

O endereço do servidor SMTP do Gmail é "smtp.gmail.com". Ele requer conexão SSL ou TLS, e você deve usar um endereço de email do Gmail como o nome de usuário para autenticação ESMTP

Secure Socket Layer - SSL

É um padrão global em tecnologia de segurança desenvolvida pela Netscape em 1994. Ele cria um canal criptografado entre um servidor web e um navegador (browser) para garantir que todos os dados transmitidos sejam sigilosos e seguros. Milhões de consumidores reconhecem o "cadeado dourado" que aparece nos navegadores quando estão acessando um website seguro. 

Quando escolher ativar o SSL no seu servidor web você terá que responder algumas questões sobre a identidade do seu site (ex. a URL) e da sua empresa (ex. a Razão Social e o endereço). Seu servidor web então criará duas chaves criptográficas - a Chave Privada (Private Key) e a Chave Pública (Public Key). Sua Chave Privada não possui esse nome à toa - ela deve ser mantida privada e segura. Já a Chave Pública não necessita ser secreta e deve ser colocada na CSR (Certificate Signing Request) - um arquivo de dados contendo os detalhes do site e da empresa. Você deverá enviar esta CSR através do formulário de solicitação em nosso site, seus dados serão validados e se estiverem corretos seu certificado digital será emitido.

Seu servidor web irá associar o certificado emitido com a sua Chave Privada. Seu servidor irá estebelecer um link criptografado entre seu website e o navegador do seu consumidor.

Transport Layer Security - TLS

É um protocolo criptográfico cuja função é conferir segurança para a comunicação na Internet para serviços como email (SMTP), navegação por páginas (HTTP) e outros tipos de transferência de dados.

Simple Mail Transfer Protocol - SMTP  

É protocolo que transfere emails, é instalado como parte dos serviços de email junto o serviço POP3. O SMTP controla como o email é transportado e entregue através da Internet ao servidor de destino. O serviço SMTP envia e recebe emails entre os servidores, ao passo que o serviço POP3 recupera o email do servidor de email para o computador do usuário.

Extended Simple Mail Transfer Protocol - ESMTP  

O ESMTP é uma definição de extensões de protocolo para o padrão Simple Mail Transfer Protocol. O formato da extensão foi definido na RFC 1869 em 1995. A RFC 1869 estabeleceu uma estrutura para as atuais e futuras extensões, para produzir um meio gerenciável e consistente pelo qual os clientes e servidores SMTP possam ser identificados e servidores SMTP possam indicar extensões suportadas para clientes conectados.

Por exemplo: Caso o seu e-mail seja "bernardess@gmail.com", o nome do usuário deverá ser "bernardess@gmail.com".

Os códigos de exemplo a seguir demonstram o envio de mensagem de email usando o

Para tornar o seu projeto funcional faça o download e instale o
EASendMail em sua máquina.

Não deixe de adicionar a referência ao controle ActiveX de SMTP do objeto EASendMail no seu projeto. 

Inline image 1

Lembre-se, antes de executá-lo corretamente, por favor, mude o servidor SMTP, usuário, senha, remetente, e destinatário conforme a conta a ser utilizada.

Private Sub btnSendMail_Click() 

    Dim oSmtp As New EASendMailObjLib.Mail 
    Let oSmtp.LicenseCode = "TryIt" 

    ' Set your Gmail email address
    Let oSmtp.FromAddr = "bernardess@gmail.com

    ' Add recipient email address
    oSmtp.AddRecipientEx "inanyplacet@gmail.com", 0 

    ' Set email subject
    Let oSmtp.Subject = "Teste de envio de email através da conta do Gmail." 

    ' Set email body
    Let oSmtp.BodyText = "Este é um teste de envio de email através do Gmail." 

    ' Gmail SMTP server address
    Let oSmtp.ServerAddr = "smtp.gmail.com

    ' If you want to use direct SSL 465 port,
    ' Please add this line, otherwise TLS will be used.
    ' Let oSmtp.ServerPort = 465

    ' detect SSL/TLS automatically
    oSmtp.SSL_init 

    ' Gmail user authentication should use your
    ' Gmail email address as the user name.
    ' For example: your email is "bernardess@gmail.com", then the user should be "bernardess@gmail.com"
    Let oSmtp.UserName = "bernardess@gmail.com
    Let oSmtp.Password = "<Digite aqui a sua senha>" 

    MsgBox "Início do envio de e-mails" 

    If oSmtp.SendMail() = 0 Then 
        MsgBox "Email foi enviado com sucesso!" 
    Else 
        MsgBox "Falha ao enviar email, erro detectado. Erro nº: " & oSmtp.GetLastErrDescription() 
    End If 

End Sub 


Tags: VBA, Gmail, email, e-mail, SMTP, SSL, TLS, ESMTP, HTTP, CSR, RFC 1869, 

20 de janeiro de 2013

VBA Powerpoint - Liste os Títulos e as Notas dos seus Slides - How to get a list of the slide titles and notes text in PowerPoint?

Inline image 1

Option Explicit

Dim fOnlyEmptyNotes As Boolean

Sub ExportNotesText()

    Dim oSlides As Slides
    Dim oSl As Slide
    Dim oSh As Shape
    Dim strNotesText As String
    Dim strFileName As String
    Dim intFileNum As Integer
    Dim lngReturn As Long
    Dim results As VbMsgBoxResult    
    
    ' Get a filename to store the collected text
    strFileName = Replace(ActivePresentation.FullName, ".ppt", ".txt")
    strFileName = InputBox("Enter the full path and name of file to extract notes text to", "Output file?", strFileName)
    strNotesText = "Slide Notes from PowerPoint presentation:" & vbCrLf & _
                    ActivePresentation.FullName & vbCrLf & vbCrLf
    
    ' Include only slides with notes in output file?
    results = MsgBox("Would you like to ONLY include Slides that actually have Notes in your output file?", _
        vbQuestion + vbYesNoCancel, "Output Results")
    If results = vbYes Then
        fOnlyEmptyNotes = True
        strNotesText = strNotesText & _
            "IMPORTANT:  This file contains only the slides that have Notes!" & vbCrLf & vbCrLf
    Else
        fOnlyEmptyNotes = False
    End If      

    ' did user cancel?
    If strFileName = "" Or results = vbCancel Then
        Exit Sub
    End If

    ' is the path valid?  crude but effective test:  try to create the file.
    intFileNum = FreeFile()
    On Error Resume Next
    Open strFileName For Output As intFileNum
    If Err.Number <> 0 Then     ' we have a problem
        MsgBox "Couldn't create the file: " & strFileName & vbCrLf _
            & "Please try again."
        Exit Sub
    End If
    Close #intFileNum  ' temporarily

    ' Get the notes text
    Set oSlides = ActivePresentation.Slides
    
    For Each oSl In oSlides
        If fOnlyEmptyNotes = True Then
            ' Only output notes for slides with actual note text
            If NotesText(oSl) <> vbNullString Then
                strNotesText = strNotesText & "-----------------------------------" & vbCrLf
                strNotesText = strNotesText & "TITLE:  " & SlideTitle(oSl) & vbCrLf
                strNotesText = strNotesText & "NUMBER: " & oSl.SlideNumber & vbCrLf
                strNotesText = strNotesText & "NOTES:  " & NotesText(oSl) & vbCrLf & vbCrLf
            End If
        Else
            ' Output all slides
            strNotesText = strNotesText & "-----------------------------------" & vbCrLf
            strNotesText = strNotesText & "TITLE:  " & SlideTitle(oSl) & vbCrLf
            strNotesText = strNotesText & "NUMBER: " & oSl.SlideNumber & vbCrLf
            strNotesText = strNotesText & "NOTES:  " & NotesText(oSl) & vbCrLf & vbCrLf
        End If
        
    Next oSl

    ' now write the text to file
    Open strFileName For Output As intFileNum
    Print #intFileNum, strNotesText
    Close #intFileNum

    ' show what we've done
    lngReturn = Shell("NOTEPAD.EXE " & strFileName, vbNormalFocus)

End Sub

Function SlideTitle (oSl As Slide) As String
    Dim oSh As Shape
    For Each oSh In oSl.Shapes
        If oSh.Type = msoPlaceholder Then
            If oSh.PlaceholderFormat.Type = ppPlaceholderTitle _
                Or oSh.PlaceholderFormat.Type = ppPlaceholderCenterTitle Then
                If Len(oSh.TextFrame.TextRange.Text) > 0 Then
                    SlideTitle = oSh.TextFrame.TextRange.Text
                Else
                    SlideTitle = "Slide " & CStr(oSl.SlideIndex)
                End If
                Exit Function
            End If
        End If
    Next
End Function

Function NotesText (oSl As Slide) As String
' Only looking for Shape.Type = PlaceHolder which contains notes
    Dim oSh As Shape
    
    For Each oSh In oSl.NotesPage.Shapes
        If oSh.Type = msoPlaceholder Then
            If oSh.PlaceholderFormat.Type = ppPlaceholderBody Then
                If oSh.HasTextFrame Then
                    If oSh.TextFrame.HasText Then
                        NotesText = oSh.TextFrame.TextRange.Text
                    End If
                End If
            Else
                NotesText = vbNullString
            End If
        End If
    Next oSh
    
End Function

Tags: VBA, Powerpoint, list, slide, titles, notes

Inline image 2

LinkWithin

Related Posts Plugin for WordPress, Blogger...

Vitrine