2009-04-12 19 views
0

職場では、vb.net経由のオンラインアプリケーションを使用して呼び出しを追跡する必要があります。テキストボックスとドロップダウンボックスに必要な情報を入力するには、複数のページを処理する必要があります。必要な情報を入力するか、コピー&ペーストする必要があるのは面倒です。Excelからセルをコピーしてブラウザーに貼り付けられたテキストボックスに貼り付けるスクリプトを作成する方法

Excelの1つのページに情報を入力して、スクリプトをコピーして貼り付けることなくブラウザの画面にあるテキストボックスに自動的に貼り付けることができるようにしたいと考えています。

これは可能ですか?誰かが私を正しい方向に向けることができますか?

私はあなたの電子メールアカウントを作成しようとすると、彼らは常に1箱あなたに波線の文字を入力する必要がどこことを持って気づきました。これは、ブラウザー画面にあるテキストボックスに自動的に貼り付けたり書き込んだりすることができるアプリだと考えています。

正しい方向に私を指すようにすべてのヘルプは素晴らしいことです。

答えて

1

私の知る限り見ることができるように、何を望むのはあなたのためのコピー/貼り付けを行うためのExcelワークシートの一部のサードパーティのスクリプトまたはVBAスクリプトです。

は、ではありません。ブラウザで作業してみることです。ブラウザには何ができるかできないかには多くの制限があります。ほとんどの場合、コンピュータ上のデータにアクセスできないようにしています。これには、Excelスプレッドシートからのコピーも含まれます。私はあなたが行うことができるかもしれないと思う何

は、非常に非常に剛性のWindowsシェルスクリプトを構築することです。 SendKeys関数を使用すると、キープレスのセットをまるで自分で実行したかのように実行できます。

あなたはスクリプトを持っている可能性がこのような何かを:

  1. コピーしたい第一のセルにExcelのウィンドウ
  2. 移動をアクティブにします。 (矢印キーを使用して)
  3. コピーします。 (CTRL-INSERTを使用)
  4. VB.NETウィンドウを有効にします。
  5. 最初のセルからデータを挿入する場所に移動します。 (TABを何度も繰り返し使用しています)
  6. 貼り付けます。私はは場違いであれば、このようなスクリプトが失敗することを、あなたに警告しなければなりません

(SHIFT-INSERTを使用することにより) - 現在のカーソル位置が間違っている、窓のテキストが変更されましたなど

ここでは例です:

Set WshShell = WScript.CreateObject("WScript.Shell") 
WshShell.AppActivate "the-exact-text-in-the-titlebar-of-Excel" 
WScript.Sleep 50 
WshShell.SendKeys "{RIGHT}" 
WshShell.SendKeys "{RIGHT}" 
WshShell.SendKeys "{DOWN}" 
WshShell.SendKeys "^{INSERT}" 
WshShell.AppActivate "the-exact-text-in-the-titlebar-of-vb.net-browser-window" 
WScript.Sleep 50 
WshShell.SendKeys "{TAB}" 
WshShell.SendKeys "{TAB}" 
WshShell.SendKeys "{TAB}" 
WshShell.SendKeys "+{INSERT}" 

の例では、想定しています

  1. セルへExcelからのコピーは、Excelの現在のカーソル位置の右側の2列目と1行下にあります。
  2. vbフォームに貼り付ける場所は、ブラウザの現在のカーソル位置から3番目のコントロールです。
1

@ scraimerのSendKeys以外の特定の方法については、あなたが求めたことを正確に行うことはできません。彼の警告を心に留めて、SendKeysは信頼性の高いことをするのが非常に難しいです。

同じ結果を得るもう1つの可能性は、GET変数を受け入れるように.aspxを変更し、PageLoad()にそのフィールドをあらかじめ設定しておくと、名前、会社、メッセージを入力する3つの変数があります。 VAR3

// obviously make your var names nicer than mine :) 
myUrl = "http://www.mysite.com/myform.aspx?" 
myUrl = myUrl & "var1=" & strVar1 
myUrl = myUrl & "&var2=" & strVar2 
myUrl = myUrl & "&var3=" & strVar3 

OpenBrowserURL(myUrl) 

>と私は助けを求めて同様のものを使用OpenBrowserURL()ルーチン

Sub OpenBrowserURL(strURL As String) 
    ActiveWorkbook.FollowHyperlink Address:=strURL, NewWindow:=True 
End Sub 

を持っている -

http://www.mysite.com/myform.aspx?var1=JoeBolgs&var2=Company+XYZ&var3=Help+me+please 

は次にVBAでユーザーがVAR1を記入することができますフォームまたはシートを作成しますページを介して呼び出され、それは治療を働く。ユーザーがメニューをクリックすると、VBAはユーザーのお気に入りのブラウザーの一部のデータを含むURLを開きます。

プログラムでVBAからWebサイトとやりとりした唯一の方法は、GETとPOSTデータのために直接wininet.dllを呼び出すことです。それはあなたの質問に役立つとは思わないが。

あなたのサイトのゲームを何とかしなくてもいいようにしたい場合は、あなたのvarsを暗号化する必要があります。データを暗号化してUUEncodeし、要求変数として送信するのは難しいことではありません。次に、URLをデコードし、暗号化に使用したものと同じalgorythmを使用してサーバー上で復号化します。

幸運。

0

2つのExcelシートを結合する+ Excelセルを変更する+別のシートをソースと交換する

関連する問題