Outlook, Assistente de Regras, texto de pesquisa que inclui caractere de tabulação?

0

Estou tentando pesquisar Changed by:{TAB}My Name no corpo de um email no Assistente de regras do Outlook. onde {TAB} é um caractere de tabulação.

No entanto, não parece que me permita inserir um caractere de guia.

Não posso pesquisar apenas dois itens, Changed by: e My Name , pois meu nome aparece várias vezes e é alterado por um campo padrão.

Estou usando o MS Office 2010

Existe outra maneira de conseguir isso?

    
por Jules 19.04.2012 / 11:27

3 respostas

1

Consegui incorporar uma guia à string de pesquisa pressionando Control + i ao digitá-la, mas essa mensagem não correspondia ao meu servidor de e-mail. Quando examinei os caracteres reais no corpo da mensagem da mensagem recebida, descobri que o caractere {TAB} tinha sido traduzido em seis caracteres \ u00A0 (unicode) seguido por um único caractere de espaço. Isso impediu que a string de pesquisa fosse correspondida. Você pode tentar este método primeiro para ver se ele funciona com seus e-mails.

Como uma solução alternativa, você pode criar uma regra "personalizada" adicionando uma macro do Visual Basic for Applications ao Outlook.

  1. Primeiro, ative o menu do desenvolvedor acessando Outlook - > Opções - > Personalizar Faixa de Opções e, em seguida, marcar a opção Desenvolvedor na lista Guias Principais à direita.
  2. Agora, na visualização principal do Outlook, você deve ver um menu Desenvolvedor , selecioná-lo
  3. Clique no botão Segurança de macros na faixa de opções e selecione "Notificação para todas as macros" ou "Ativar todas as macros (não recomendado; código potencialmente perigoso pode ser executado)
  4. Em seguida, clique no botão Visual Basic na faixa de opções para abrir o editor do Visual Basic
  5. Vá para as Ferramentas - > Referências e adicionar uma referência à biblioteca do Microsoft VBScript Regular Expression 5.5
  6. No editor do Visual Basic, selecione ThisOutlookSession e cole o código listado abaixo.
  7. Salve seu projeto e saia do Outlook
  8. Reabra o Outlook e envie uma mensagem de teste

Você precisará editar o conteúdo da string RouteToFolderName e as constantes RouteToFolderRegEx para corresponder às suas preferências de pesquisa.

A macro é salva em um arquivo chamado VBAProject.OTM localizado na área de configurações do usuário (pasta C: \ Users \\ AppData \ Roaming \ Microsoft \ Outlook \ no Windows 7). Você pode querer fazer uma cópia de backup deste arquivo depois de ter obtido a macro funcionando de acordo com suas especificações.

Option Explicit

Private WithEvents olInboxItems As Items

' This is the name of the folder you want your messages moved to Private Const RouteToFolderName As String = "FollowUp"

' This is the regular expression that matches the text you are ' searching for. Outlook replaced a single {TAB} character with ' 6 x \u00A0 characters and 1 x space character. Private Const RouteToFolderRegex As String = "Changed By:\u00A0+\s+Me"

Private Sub Application_Startup() Dim objNS As NameSpace Set objNS = Application.Session ' Attach the the Outlook inbox to receive an event whenever an item arrives Set olInboxItems = objNS.GetDefaultFolder(olFolderInbox).Items Set objNS = Nothing End Sub

Private Sub olInboxItems_ItemAdd(ByVal Item As Object) Dim objNS As NameSpace Dim objMailItem As Outlook.MailItem Dim objMailFolderId As String Dim regex As RegExp Dim Found As Boolean

' Check to make sure we have a mail message first
If (TypeOf Item Is Outlook.MailItem) Then

    ' Locate the id of the folder we want to store the message in
    objMailFolderId = FindFolderByName(Application.Session.folders, Found,

RouteToFolderName)

    Set objMailItem = Item

    Set regex = New RegExp
    regex.IgnoreCase = True  ' Do a case insensitive search
    regex.Global = True
    regex.Pattern = RouteToFolderRegex

    ' Test the message body against the regular expression
    If (regex.Test(objMailItem.Body)) Then
        ' Message body matched so move to our folder
        objMailItem.Move Application.Session.GetFolderFromID(objMailFolderId)
    End If
End If
 End Sub

' Recursively search from the root folder for the folder that matches "folderName" (case insensitive) Public Function FindFolderByName(ByRef folders As Outlook.folders, ByRef Found As Boolean, ByVal folderName As String) As String Dim objFolder As Outlook.Folder

For Each objFolder In folders
    If Found = True Then
        Exit Function
    End If

    If LCase(objFolder.Name) = LCase(folderName) Then
        FindFolderByName = objFolder.EntryID
        Found = True
        Exit Function
    Else
        If objFolder.folders.Count > 0 Then
            FindFolderByName = FindFolderByName(objFolder.folders, Found, folderName)
        End If
    End If
Next End Function
    
por 25.04.2012 / 14:57
0

Tente pesquisar por Changed by:^tMy Name .

Se isso não funcionar, tente digitar toda a string de pesquisa, incluindo o caractere de tabulação normal, no WordPad, depois recorte e cole na pesquisa.

Se isso ainda não funcionar, faça o mesmo, mas use Pesquisa Avançada .

    
por 29.04.2012 / 01:48
0

Você pode inserir um caractere de tabulação no teclado usando o teclado numérico com NumLock ativado. O código hexadecimal ASCII para o caractere de tabulação é "09". Mantenha pressionada a tecla Alt e digite "09" no teclado numérico. Quando você solta a tecla Alt, um caractere de tabulação é gerado.

    
por 13.05.2016 / 00:43