Pertanyaan saya
Bagaimana bisa mendapatkan teks yang saat ini dipilih di Microsoft Outlook 2007
- di jendela pesan terbuka
- atau di pesan yang saat ini dipilih di panel pratinjau
dan salin ke clipboard?
Saya menggunakan Microsoft Outlook 2007.
Apa yang sudah saya coba
Saya tahu bahwa saya bisa menggunakan DataObjects untuk memasukkan teks ke clipboard atau mendapatkan teks dari clipboard.
Kesulitannya adalah mendapatkan teks yang saat ini dipilih
Saya mencoba perintah berikut:
- Outlook.copy
- Outlook.selection.copy
- Outlook.activeexplorer.selection.item (1). ...
dalam banyak variasi, tetapi tidak berhasil.
Saya menemukan beberapa sumber yang menyatakan bahwa tidak mungkin untuk mendapatkan teks yang dipilih saat ini di Outlook melalui VBA tapi saya pikir itu setidaknya harus memungkinkan untuk memanggil perintah Ctrl-C (copy) dan kemudian menggunakan konten clipboard.
Saya juga menemukan beberapa solusi dengan Inspektur seperti dijelaskan di sini , tetapi saya mendapat pesan kesalahan. Mungkin itu karena saya lupa referensi "MS Word Object Library" - Saya akan mencobanya pada hari Senin.
sumber
Jawaban:
Karena Outlook menggunakan Word (jika diinstal) sebagai editornya, agak sulit untuk mendapatkannya. :)
Anda harus merujuk aplikasi Word, lalu dokumen Word, lalu seleksi.
Agar kode berikut berfungsi di Outlook, Anda perlu menambahkan Referensi ( VBA Editor -> Tools -> Referensi ) ke "Perpustakaan objek Microsoft Word", dan satu ke "Perpustakaan objek Microsoft Forms", sehingga kita dapat benar-benar menyalin teks clipboard sistem.
Catatan: Bagi saya, di Office 2013, objek MS Forms tidak ada dalam daftar, jadi saya baru saja menambahkan UserForm ke proyek VBA, yang menambahkan referensi secara otomatis, dan kemudian hanya menghapus formulir. Referensi macet.
Bagaimanapun saya menggali banyak sumber dan inilah beberapa kode yang saya tempel bersama yang akan menyalin teks yang disorot ke clipboard, dengan beberapa pengecekan kesalahan dasar (diuji di Outlook 2013):
sumber
Outlook 2007
)! (Maaf atas umpan balik saya yang terlambat)