Копировать из документа MS Word в поле ввода веб-страницы - PullRequest
5 голосов
/ 28 сентября 2010

В уже открытом текстовом документе выделите весь текст
скопировать выделенный текст в буфер обмена
проверьте, что браузер по умолчанию открыт на правильном веб-адресе
если не открыт браузер по умолчанию на веб-адресе "http://thisaddress.com"
уделить внимание браузеру вставьте текст буфера обмена в поле ввода с именем «input1»

или каким-либо другим способом вывести содержимое документа MSword на вход веб-страницы?

В настоящее время рабочий процесс заключается в том, что секретарь входит на веб-сайт, затем заполняет веб-форму, переключается на открытый документ MS Word, выбирает все, копирует документ WP, затем возвращается в веб-форму и вставляет в поле ввода. , тогда нажми отправить. В идеале я хочу иметь кнопку в MS Word, которая открывает браузер для правильной веб-страницы, затем копирует и вставляет документ в правильное поле ввода на странице (фактически это будет единственное поле формы textarea).

Код MS Word VBA:

Option Explicit

Enum W32_Window_State
    Show_Normal = 1
    Show_Minimized = 2
    Show_Maximized = 3
    Show_Min_No_Active = 7
    Show_Default = 10
End Enum

Private Declare Function ShellExecute Lib "shell32.dll" _
    Alias "ShellExecuteA" (ByVal hWnd As Long, _
    ByVal lpOperation As String, ByVal lpFile As String, _
    ByVal lpParameters As String, ByVal lpDirectory As String, _
    ByVal nShowCmd As Long) As Long

Function OpenURL(URL As String, WindowState As W32_Window_State) As Boolean

' Opens passed URL with default application, or Error Code (<32) upon error

    Dim lngHWnd As Long
    Dim lngReturn As Long

    lngReturn = ShellExecute(lngHWnd, "open", URL, vbNullString, _
        vbNullString, WindowState)

    OpenURL = (lngReturn > 32)
End Function

Sub TestMacro()
  Application.ActiveDocument.Select
  Selection.Copy
  OpenURL "http://localhost:8500/index.cfm?wordContent=" & Selection, W32_Window_State.Show_Maximized
End Sub

и в форме обработки холодного синтеза

<html>
<head>
</head>

<body>
<form id="form1">
    <Textarea ID="txtArea" rows=6><cfoutput>#url.wordContent#</cfoutput></textarea>
</form>

</body>
</html>

Просто хотел бы выяснить, как не открывать новое окно браузера, если оно уже открыто.

Ответы [ 2 ]

2 голосов
/ 31 октября 2010

Если вы можете изменить веб-приложение, вы можете сделать следующее:

  1. MS-Word: копировать содержимое в буфер обмена.
  2. MS-Word: открыть URL-адрес как"http://thisaddress.com/SomePage?pasteClipboard=true"
  3. SomePage: если параметр строки запроса pasteClipboard == true, то добавьте функцию javascript для получения данных буфера обмена в поле формы.

Обновление:

В вашем макросе вы просто вызываете Selection.Copy, и чтобы открыть URL с помощью браузера по умолчанию, проверьте эту ссылку http://www.experts -exchange.com / Программирование / Языки / Visual_Basic / Q_23225744.html

Используя код из предыдущей ссылки, я сделал тестовый макрос следующим образом:

Sub TestMacro()
  Application.ActiveDocument.Select
  Selection.Copy
  OpenURL  "http://thisaddress.com/SomePage?pasteClipboard=true", W32_Window_State.Show_Maximized
End Sub

Надеюсь, это было полезно.

Обновление 2:

Просто используйте W32_Window_State.Show_Default, вот полный макрос:

Option Explicit

Enum W32_Window_State
    Show_Normal = 1
    Show_Minimized = 2
    Show_Maximized = 3
    Show_Min_No_Active = 7
    Show_Default = 10
End Enum

Private Declare Function ShellExecute Lib "shell32.dll" _
    Alias "ShellExecuteA" (ByVal hWnd As Long, _
    ByVal lpOperation As String, ByVal lpFile As String, _
    ByVal lpParameters As String, ByVal lpDirectory As String, _
    ByVal nShowCmd As Long) As Long

Function OpenURL(URL As String, WindowState As W32_Window_State) As Boolean

' Opens passed URL with default application, or Error Code (<32) upon error

    Dim lngHWnd As Long
    Dim lngReturn As Long

    lngReturn = ShellExecute(lngHWnd, "open", URL, vbNullString, _
        vbNullString, WindowState)

    OpenURL = (lngReturn > 32)
End Function

Sub TestMacro()
  Application.ActiveDocument.Select
  Selection.Copy
  OpenURL "http://thisaddress.com/SomePage?pasteClipboard=true", W32_Window_State.Show_Default
End Sub
0 голосов
/ 25 октября 2010

Другой вариант - изучить управление Internet Explorer из Word с помощью элемента управления.

Здесь является примером.

Обратите внимание, это будет работать только с IE (если нет версий dll Firefox и т. Д.)

...