2010-09-28 8 views
5

In einem bereits geöffneten Word-Dokument all Text
Kopie ausgewählten Text markiert in der Zwischenablage kopiert
Check Standard-Browser geöffnet korrekte Web-Adresse
wenn nicht öffnet Standard-Browser auf Web-Adresse „http://thisaddress.com
gibt Fokus Browser Paste Zwischenablage Text in Eingabefeld namens „input1“Kopieren von MS Word-Dokument auf eine Webseite Eingabefeld

oder eine andere Art und Weise MSword Dokumentinhalte auf einen Web-Seite Eingang zu bekommen?

Momentan beinhaltet der Arbeitsablauf eine Sekretärin, die sich auf der Website anmeldet, ein Webformular ausfüllt, zu ihrem geöffneten MS Word Dokument wechselt, alles auswählt, das WP Dokument kopiert, dann zurück zum Webformular und in eine Eingabe einfügt Box, dann schlagen Sie einreichen. Was ich tun möchte, habe idealerweise eine Schaltfläche in MS Word, die den Browser auf die richtige Webseite öffnet und dann das Dokument in das richtige Eingabefeld auf der Seite kopiert und einfügt (tatsächlich wird es das einzige Textbereichfeld sein).

Der MS Word VBA-Code ist:

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 

und in Coldfusion Handhabung Form

<html> 
<head> 
</head> 

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

</body> 
</html> 

möchte einfach mal erarbeiten, wie kein neues Browserfenster zu öffnen, wenn man bereits geöffnet ist .

+0

Was ist das Web-Formular-Adresse? – ocodo

+0

Ist die Web-Anwendung Teil Ihrer Lösung? Kannst du es ändern? –

+0

Ich habe meine Antwort mit weiteren Hinweisen aktualisiert, überprüfe sie. –

Antwort

2

Falls Sie die Web-Anwendung ändern können, können Sie wie folgt vorgehen:

  1. MS -Wort: Kopiere Inhalte in die Zwischenablage.
  2. MS-Word: Open URL als "http://thisaddress.com/SomePage?pasteClipboard=true"
  3. Eineseite: Wenn Abfrage-String param pasteClipboard == true, dann fügen Sie eine Javascript-Funktion, um die Daten aus der Zwischenablage zu erhalten in dein Formularfeld.

Update:

In Ihrem Makro Sie einfach Selection.Copy rufen, und die URL zu öffnen Standard-Browser http://www.experts-exchange.com/Programming/Languages/Visual_Basic/Q_23225744.html

Verwenden Sie den Code aus dem vorherigen Link diesem Link verwenden, habe ich einen Test Makro wie:

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

Ich hoffe, das war hilfreich.

Update 2:

Nur W32_Window_State.Show_Default verwenden, ist die vollständige Makro:

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

Ja, die Web App ist unter meiner Kontrolle. Weitere Hinweise zu 1 und 2 bitte? – Saul

+0

Ganz nah dran, und vielen Dank für Ihre Hilfe. Dies öffnet jedes Mal ein neues Browserfenster. Gibt es eine Möglichkeit, dies so zu ändern, dass ein neuer Browser nur geöffnet wird, wenn der Browser noch nicht geöffnet ist. – Saul

+0

Ich denke, W32_Window_State.Show_Default ist was du suchst, egal wie ich die Antwort mit dem kompletten Makro-Code aktualisiert habe. –

0

Eine weitere Option ist die Kontrolle des Internet Explorers in Word mithilfe eines Steuerelements.

Here ist ein Beispiel.

Hinweis, wird dies nur mit IE arbeiten (es sei denn, es gibt dll Versionen von Firefox etc.)

+0

Das ist ein guter Link Ben, aber es muss Cross-Browser sein. – Saul

Verwandte Themen