2010-09-28 12 views
5

w już otwartym dokumencie tekstowym zaznaczyć cały tekst
skopiować zaznaczony tekst do schowka domyślną przeglądarkę
wyboru otwarty w prawidłowym adresem
jeśli nie otworzy domyślną przeglądarkę na adres strony internetowej „http://thisaddress.com
Uaktywnienie przeglądarki wklejania tekstu do schowka polu tekstowym o nazwie „input1”Kopiowanie z dokumentów MS Word w polu tekstowym strony internetowej

lub jakiś inny sposób, aby zawartość dokumentu msword do wejścia strony internetowej?

Obecnie przepływ pracy wymaga zalogowania się sekretarza na stronę internetową, następnie wypełnienia formularza internetowego, przejścia do otwartego dokumentu MS Word, wybrania wszystkich, skopiowania dokumentu WP, a następnie z powrotem do formularza internetowego i wklejenia do danych wejściowych pole, a następnie naciśnij przycisk przesyłania. Co chcę zrobić najlepiej mieć przycisk w słowie MS, który otwiera przeglądarkę na właściwej stronie internetowej, a następnie kopiuje i wkleja dokument do właściwego pola wejściowego na stronie (w rzeczywistości będzie to jedyne pole formularza pola tekstowego).

Kod MS Word VBA jest:

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 

iw postaci obsługi ColdFusion

<html> 
<head> 
</head> 

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

</body> 
</html> 

Tak chciałoby się wypracować jak nie otworzyć nowe okno przeglądarki, jeśli jest już otwarty .

+0

Jaki jest adres internetowy formularz? – ocodo

+0

Czy aplikacja internetowa jest częścią Twojego rozwiązania? czy możesz to zmodyfikować? –

+0

Zaktualizowałem swoją odpowiedź o dalsze wskazówki, sprawdź to. –

Odpowiedz

2

W przypadku można zmodyfikować aplikację internetową, można wykonać następujące czynności:

  1. MS -Word: Skopiuj zawartość do schowka.
  2. MS Word: Open Url jako "http://thisaddress.com/SomePage?pasteClipboard=true"
  3. JakaśStrona: jeśli ciąg kwerendy param pasteclipboard == true, następnie dodać funkcję javascript, aby uzyskać dane ze schowka w twoje pole formularza.

Aktualizacja:

W makra po prostu zadzwonić Selection.Copy i otworzyć URL przy użyciu domyślnej przeglądarki sprawdź ten link http://www.experts-exchange.com/Programming/Languages/Visual_Basic/Q_23225744.html

Używając kodu z poprzedniego związku, zrobiłem test makro jako:

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

Mam nadzieję, że było to pomocne.

Aktualizacja 2:

Wystarczy użyć W32_Window_State.Show_Default, Oto pełna 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

Tak, aplikacja internetowa jest pod moją kontrolą. Jakieś dalsze wskazówki do 1 i 2 proszę? – Saul

+0

Prawie już tam, a dzięki za pomoc. Spowoduje to otwarcie za każdym razem nowego okna przeglądarki. Czy istnieje sposób modyfikacji tego, aby nowa przeglądarka była otwierana tylko wtedy, gdy przeglądarka nie jest jeszcze otwarta. – Saul

+0

Myślę, że W32_Window_State.Show_Default jest tym, czego szukasz, w jaki sposób zaktualizowałem odpowiedź z pełnym kodem makro. –

0

Inną opcją jest sprawdzenie sterowania Internet Explorerem z poziomu programu Word za pomocą kontrolki.

Here jest przykładem.

Uwaga, to będzie działać tylko z IE (chyba że istnieją dll wersje Firefox etc.)

+0

To dobry link Ben, ale musi to być przeglądarka. – Saul

Powiązane problemy