Aqui vai você. Eu estou atualmente no joelho em AutoIt, então eu usei isso. Você pode obter a própria ferramenta em autoitscript.com.
Notas:
-
Eu limito Ctrl + Shift + I ao comando InsertFile do Word, você deve fazer o mesmo para que o script funcione. Google ou pesquise no StackExchange.
-
O script funciona a partir do pressuposto de que um documento vazio já está aberto no MS Word e que existe apenas uma janela do MS Word.
-
Modifique o valor de $ locationOfRtfFiles para corresponder à sua configuração. Deve apontar para a pasta que contém os RTFs.
-
O intervalo de suspensão pode exigir ajuste (depende do desempenho do computador e do tamanho / complexidade dos arquivos RTF)
O código (um pouco mais de 10 linhas, mas vamos esperar que ninguém esteja contando):
; Some common sense stuff, look it up in the docs
AutoItSetOption("TrayIconDebug", 1)
AutoItSetOption("MustDeclareVars", 1)
; Tell AutoIt to match the substring anywhere in the window title
AutoItSetOption("WinTitleMatchMode", 2)
; find a window by title and some contained text (optional),
; make it active and wait for the window to become
; active
Func MyWinWait($title, $keytext = "")
WinWait($title, $keytext)
WinActivate($title, $keytext)
WinWaitActive($title, $keytext)
Return
EndFunc
Local $locationOfRtfFiles = "C:\MyCollectionOfRtfPorn"
; for every file in the set
For $fileIndex = 1 to 70000
; focus on the main Word window
MyWinWait("Microsoft Word")
; emulate Ctrl+Shift+I
Send("{CTRLDOWN}{SHIFTDOWN}i{SHIFTUP}{CTRLUP}")
; wait for the Insert File window to open
MyWinWait("Insert File")
; type out a file's name
Send($locationOfRtfFiles & "\" & $fileIndex & ".rtf")
; confirm selection
Send("{ENTER}")
; sleep for 10 seconds before proceeding to next file
Sleep(10000)
Next
Você pode querer ajustar o limite de ciclo com base no número real de RTFs. Além disso, se a nomenclatura dos arquivos não seguir o esquema de numeração especificado originalmente, o script precisará de alterações.