Mac'te Outlook 2016'da makrolar gibi bir şey var mı?


3

Windows'taki Outlook'ta bir veya daha fazla iletiyi Gelen Kutusu'ndan bir klasöre taşıyan, yüzlerce e-postayı her gün istediğim yere çok hızlı bir şekilde taşımak için kullandığım bir klavye kısayoluna ekleyen bir VBA komut dosyası var.

Mac'te Outlook'ta böyle bir özellik var mı? Sorunun nasıl ifade edileceğinden emin değilim, açık bir şekilde olmadığı durumlarda "Mac'te Outlook'ta VBA ve Makrolar Var mı?" Sorusunu sorarak çok dar olmak istemiyorum, ancak bu soruna yaklaşmanın başka bir yolu var, işleri otomatikleştirmek ve kişiselleştirilmiş görevlere klavye kısayolları atamak?

Düzenleme: Bir yorum Applescript bahsetti. (Mac’in yeni çocuğuyum). Daha sonra Applescript simgesini etkinleştirmekle ilgili bir yazı ve bir iletiden bir Görev oluşturmak için Applescript kullanmakla ilgili bir makale buldum . İstediğim tam olarak bu değil ama ileriye doğru çok büyük bir adım. Şimdi Applescript ve Outlook'un kullanımını inceleyeceğim ve bir yerlere ulaşırsam kendi soruma cevap vereceğim.


Outlook'un Applescript'i desteklediğini biliyorum, ancak uygulamalarında oldukça sınırlı olduğunu biliyorum. Ayrıca göründüğü gibi VBA'yı
Steve Chambers

Datanumen makalesi Windows ile ilgili. Applescript'e bakacağım, önerdiğiniz için teşekkür ederim.
jay613

Öncelikle, Farklı Sormaya Hoş Geldiniz! :) Umarım bu siteyi değerli bir kaynak olarak bulursunuz. Ne yazık ki, hem Outlook hem de OneNote Mac'teki VBA'yı desteklemiyor (Excel, PowerPoint ve Word'ün yapmasına rağmen). İletileri yalnızca gelen kutunuzdan bir klasöre taşımak istediğinizden, bir kural (veya kurallar) oluşturmanın ihtiyaçlarınızı karşılamamasının bir nedeni var mı? Soruyorum, sorunuzun daha da netleştirilmesine yardımcı olabilir.
Monomeeth

@Monomeeth, klavye tuşlarını kullanarak yüzlerce e-postayı (günlük) klavye kısayollarını kullanarak klasörlere taşımaktır, çünkü fareyle sürüklemekten ziyade bu şekilde yapması çok daha hızlı, daha kolay ve daha az hataya meyillidir. Bunu da yapan kurallarım var, ancak bu gereklilik kurallarla ilgilenilmeyen e-postalar için. Bu bir insan görevidir ve scriptler ve klavye kısayolları onu büyüklük sırasına göre kolaylaştırır.
jay613

Yanıtlar:


3

İşte Mac'te Outlook 2016'da Windows "Bir VB komut dosyası yazıp bir anahtara atama" eşdeğerini yapmanın bir yoludur. Beni doğru yöne işaret edenlere teşekkür ederim. Mac'te bu Applescript, Automator ve Keyboard Shortcuts ile yapılır. Seçili Outlook e-postalarını bir arşiv klasörüne taşıyan Applescript'i buraya ekliyorum. Ayrıca referans olarak aşağıda gösterilmiştir, Mac'te taklit etmeye çalıştığım orijinal VBA.

Adım 1 - Seçilen Outlook öğesini Arşive taşımak için Uygulama Yazma

  • Spotlight Search'ü başlatmak için Command-Tab tuşuna basın, başlatmak için “Script Editor” yazın.
  • İsteğe bağlı: Aşağıdaki şekilde Apple menüsündeki script editörüne bir kısayol kurun. Önce script editöründe olmalısınız, daha sonra üstteki menüde Script Editor-> Preferences'i seçin. Ardından, tercihlerde Genel'i seçin ve “Menü çubuğunda Komut Dosyası menüsünü göster” ve ayrıca “Bilgisayar komut dosyalarını göster” seçeneğini işaretleyin.
  • Aşağıdaki komut dosyası ile başlayın. Koş, test et, onunla oyna. Bunu istediğiniz gibi yapmak için bunu değiştirmekle ilgili yardım almak için başka bir yere bakın. Bu komut dosyası seçili olan e-postaları “İZ Arşiv” adlı bir klasöre taşır. Klasör adını kendinize göre değiştirin. Burada iyileştirme için çok yer var. Hatırlatıcılar problemini çözmek istiyorum.

    tell application "Microsoft Outlook"
        -- get the currently selected message or messages
        -- NOTE in this version it fails if the Outlook Reminder window is open, even if you select a message in the main window.
        set selectedMessages to current messages
    
        -- if there are no messages selected, warn the user and then quit
        if selectedMessages is {} then
            display dialog "Please select a message first and then run this script." with icon 1
            return
        end if
    
        set aMessage to item 1 of selectedMessages
        set emailAcct to account of aMessage
        set inBoxFolder to folder "Inbox" of emailAcct
        set ArchiveFolder to folder "IZ - Archive" of inbox
    
        repeat with theMessage in selectedMessages
            move theMessage to IZArchiveFolder
        end repeat
    end tell
    

Adım 2 - Appmacript'i Automator kullanarak bir servise atayın

  • Spotlight Search'ü başlatmak için Command-Tab tuşlarına basın, oradan Automator'u başlatın
  • Otomatikleştirici'de belgeniz için bir tür seçin, “Hizmet” seçeneğini seçin. Komut dosyanızdan bir hizmet oluşturacaksınız.
  • Servisin en üstünde, iki ayarı aşağıdaki gibi yapın: Servis, herhangi bir uygulamada giriş almaz. Sol panelde, Kitaplık'ı seçin, ardından uzun listeden ikinci panelde “Applescript'i Çalıştır” ı bulun ve bunu ana servise sürükleyin. penceresi.
  • Applescript'inizi kopyalayıp yapıştırın (* Komut dosyanız buraya gidiyor *)

  • Servisi kaydedin, MoveSelectedOutlookMailToArchive gibi bir ad vererek. Automator'da “Farklı Kaydet” seçeneğinin nasıl olduğu açık değil. Ekranın üstündeki “Dosya” menüsü ile oynayın ve biraz googling yapın.

  • Bu servis ~ / Library / Services / yourservicename altına kaydedilir.

Adım 3 - Hizmeti bir anahtara atama

  • Outlook Menü-> Outlook-> Hizmetler-> Hizmetler Tercihleri'nden veya Sistem Tercihleri-> Klavye-> Kısayollar-> Servisler'den Klavye Kısayolları'na gidin.
  • Klavye Kısayolları editöründe soldaki “Servisler” i seçin, ardından yeni servisinizi bulacağınız “Genel” bölümünün altına gidin.
  • Buna tıklayın ve istediğiniz klavye kısayolunu atayın.

============

Burada referans ve karşılaştırma yapmak için Mac'te öykünmeye çalıştığım orijinal VBA betiği var. Gördüğünüz gibi, Applescript daha özlü ve sezgiseldir, öte yandan bir anahtara (burada gösterilmemiştir) atanma mekanizması PC'de WAY daha kolaydır.

'Outlook VB Macro to move selected mail item(s) to a target folder
Sub MoveToIZArchive()
On Error Resume Next

Dim ns As Outlook.NameSpace
Dim moveToFolder As Outlook.MAPIFolder
Dim objItem As Outlook.MailItem

Set ns = Application.GetNamespace("MAPI")

'Define path to the target folder
Set moveToFolder = ns.GetDefaultFolder(olFolderInbox).Folders("IZ - Archive")

If Application.ActiveExplorer.Selection.Count = 0 Then
   MsgBox ("No item selected")
   Exit Sub
End If

If moveToFolder Is Nothing Then
   MsgBox "Target folder not found!", vbOKOnly + vbExclamation, "Move Macro Error"
End If

For Each objItem In Application.ActiveExplorer.Selection
   If moveToFolder.DefaultItemType = olMailItem Then
      If objItem.Class = olMail Then
         'objItem.UnRead = False
         objItem.Move moveToFolder
      End If
  End If
Next

Set objItem = Nothing
Set moveToFolder = Nothing
Set ns = Nothing

End Sub

1
"Hizmet / Kütüphane / Servisler / altında kaydedilecektir" demiştiniz, ki bu doğru yer değildir, bunlar /Users/$USER/Library/Services/kısa veya çok kısa sürede kaydedilir :~/Library/Services/
user3439894
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.