• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:WEBページからのメッセージをVBAで)

VBAでWEBページからのメッセージを自動で処理する方法

todo36の回答

  • todo36
  • ベストアンサー率58% (728/1234)
回答No.2

関連するQ&A

  • WEBページでVBAを使う事

    新規にブックを立ち上げて、 アクティブXコントロールのコマンドボタンを置いて、 Private Sub CommandButton1_Click() MsgBox "test" End Sub として、 ファイル名:Book1.htm ファイルの種類:webページ にして、一度ファイルを閉じて、Book1.htmをダブルクリックして開くと IEのブラウザで開かれコマンドボタンが表示されますが押してもmsgboxは表示されません。 WEBページでVBAを使う事は無理なのでしょうか? VBSやjavaスクリプトに書き換えなくてはいけないですか? エクセルで作ったデータベースをそのままWEBにアップしたいのでこのような事が知りたいです。

  • VBAでjavascriptを操作

    カテゴリが違っていたら申し訳ありません。 VBAでIEを制御する際、色々調べているとjavascriptを使うシーンが たびたび出てくるのですが、あれはIEで読み込んだページ内にあるものを使っているのですか? それともIEの中に基本的な関数やメソッドが入っていて それも含め呼び出して使っているのでしょうか。 HTMLのソースを見てjavascriptのソースが分かるものについては、 それをVBAを使って動かすことはできるのは理解しています。 ページ内に存在しない基本的なjavascriptのコードは vbaだけで呼び出せたりするのですか? たとえば下記のページのOKボタンをクリックする場合、 http://kamicha1.web.fc2.com/Excel/Test20090726.html 下記のコードをVBEに記載しました。 このclick()はjavascriptの関数(メソッド?)なのでしょうか。 HTMLをclick()で検索しても該当はありませんでした。 ie.document.Script.setTimeout "javascript:document.getElementById('popOK').click()", 200 分かりにくい文章で申し訳ないのですが、 上記のコードはIDの部分を変えてればどんなページにも使えるものなのでしょうか。 恐れ入りますが、ご教示お願いします。

  • Web Browserに表示したWebページのボタンを押下したい[VBA]

    こんにちは。 Web Browserで、表示したWebページ上のボタンを押下したいと思っています。 どのようにプログラミングすればよいのか教えて下さい。 下記のように、組んでみたのですがダメでした。     ◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆ 'WebブラウザにHPを表示する ActiveXコントロール0.Navigate ("http://~) 'Webブラウザが終わるまで待つ Do Until ActiveXコントロール0.Busy = False DoEvents Loop 'Webブラウザにフォーカスをあてる ActiveXコントロール0.SetFocus '既定のボタンのフォーカスを移動する SendKeys "{TAB}" 'エンターキーを押下する SendKeys "{ENTER}     ◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆ ボタンにフォーカスを移動するまでは、できたんですが、 エンターキー押下では、ボタンをクリックしたことにならないようです。 IEでは、エンターキーでボタンクリックできるですが、 Web Browserではダメなんでしょうか・・・? ACCESS2000を使用しています。 なにかボタンを押下する方法を教えて下さい。 よろしくお願いします。

  • UWSC Webページダイアログのボタンが押せない

    Windows10で、UWSCで、 Internet Explorerに表示されているサイトのページの 登録ボタンをクリックして、 表示されたWebページダイアログのOKボタンを押したいのですが、 登録ボタンは実行されて、 添付図のWebページダイアログは表示されるのですが、 WebページダイアログのOKボタンが押されません。 以下のコードのどこが間違っているのでしょうか。 -------------------------------------------- (省略) CLKITEM(ID1,"登録",CLK_BTN) SLEEP(1) ID2=GETID("Web ページからのメッセージ") SLEEP(1) CLKITEM(ID2,"OK",CLK_BTN)  SLEEP(1) --------------------------------------------

  • 別アプリケーションへChDir

    エクセルのVBAを使い別のアプリケーションを操作するのですが SendKeysを使い、ファイルを開くダイアログを開いた時の初期ディレクトリがどうしても変更できません。 希望は以下の内容と同じ事を別アプリで実行することです。 Sub test() ChDir "C:\test" '↓この部分はSendkeysを使う操作になっても構いません。 Application.Dialogs(xlDialogOpen).Show End Sub 何方かお助け願います。

  • VBA IEを操作。ファイルダウンロード

    IEを操作して、ファイルをダウンロードしようと思います。 色んなサイトからとってきて、使わせてもらっています。 '---------------------------------IEを開くときに使う Sub IE_OPEN(webUrl As String) Dim objShell Dim writesheet As Worksheet Dim n As Long Dim ID As String, Password As String Set objShell = CreateObject("Shell.Application") Set ie = CreateObject("InternetExplorer.Application") ie.Visible = True ie.Navigate2 webUrl Do While ie.Busy Or ie.readyState <> 4 DoEvents Loop Dim objINPUT Set objINPUT = ie.document.getElementsByTagName("INPUT") 'ループで頭からテキストが 次へ を探す For n = 0 To objINPUT.Length - 1 '※ type="submitボタンなので、.InnerTextじゃなくて、.Valueです ※※注意 If InStr(objINPUT(n).Value, "ログイン") > 0 Then '文字列の中から見つけたら Worksheets("Sheet1").Activate Do While ie.Busy Loop objINPUT(n).Click '見つけたINPUTタグのオブジェクトをクリック Do While ie.Busy Loop Exit For End If Next Set objINPUT = Nothing 'オブジェクト変数解放 End Sub '------------------------------IEを開く(この段階では既に開いてあります。) Private Sub CommandButton1_Click() Do While ie.Busy Or ie.readyState <> 4 DoEvents Loop ie.document.all.ah_ehName.Value = Me.ComboBox1.List(Me.ComboBox1.ListIndex) 'ID Do While ie.Busy Loop Dim objINPUT Dim n As Long Set objINPUT = ie.document.getElementsByTagName("INPUT") For n = 0 To objINPUT.Length - 1 If InStr(objINPUT(n).Value, "ダウンロード") > 0 Then objINPUT(n).Click Do While ie.Busy Loop Exit For End If Next Do While ie.Busy = True DoEvents Loop SendKeys "%S", True'保存 Do While ie.Busy = True DoEvents '何もしないループ(笑) Loop SendKeys "%O",True'ファイルを開く? Do While ie.Busy = True DoEvents Loop 'ie.Quit End Sub ’==================- 面倒なので、IEはPublic変数として モジュールに書いています。 (色んなモジュールを経由する必要があるため、このような手段を取りました) SendKeysをIEに送るというのが出来ずに困っています。 ダウンロードというボタンを押してのダウンロードなので、 ダウンロード用のURL等は分かりません。 Excel2003を使っています。 どうにかSendkeysで出来ないでしょうか? もしくは、もう少し分かりやすい方法は無いでしょうか。 (ファイルを保存しますか?のダイアログの「保存」をクリックして  所定の場所におき、開きたい。 そのまま開くのでもいいけれど、動作が不安定になるのは困る) 以上、よろしくお願い致します。

  • vbaでIEの名前を付けて保存(A)をしたい

    VBA で IEの通知バー を操作したいです。 SendKeys で 通知バーの 保存(S) はできたのですが、 保存(s)の右隣の ▼ をクリックするとでてくる、 名前を付けて保存(A) の方法がわかりません。 どのようなキーをおくればよいのでしょうか。 他の質問をみると、SendKeysではなく ○○がよいですよ みたいな内容しか見つからず、 回答をみつけることができなくて困っておりますのでよろしくお願いいたします。

  • VBAでWEBのリンクをクリックしたい

    取引先のWebサイトから請求書のデータを取得しようと思い、該当ページに到達すべくコードを書いてみました。 以下のコードを F8 キーでステップ実行を続けると目的を達するのですが、ボタンに割付て実行するとログイン後のページを表示した後目的のリンクをクリックできません。 状態待ちかと思い待機コードをビシバシ突っ込みましたが通常実行では目的のリンクをクリックしてくれません。 どうしたらよいでしょうか? Sub サイトオープン() Set objIE = CreateObject("InternetExplorer.Application") With objIE .Navigate "https://www2.hogehoge/Login.jsp" .Visible = True 'IE待機 Do While .Busy = True DoEvents Loop 'テストボックスへ入力 .Document.all.Item("userId").Value = Range("b1").Value .Document.all.Item("password").Value = Range("b2").Value '送信ボタンクリック .Document.forms(0).submit     '←ここまではOK    'IE待機 Application.Wait 3000 '1000分の1秒 Do While .Busy = True DoEvents Loop     ’フレーム内のリンク確認 For Each objLink In objIE.Document.frames("right").Document.Links If objLink.Href = "https://www2.hogehoge/BillList.jsp?init=false&search=???&page=Top" Then '←F8ステップ実行ではOKだが、通常処理では判定されない?      'IE待機 Do While .Busy = True DoEvents Loop  ’リンクをクリック          objLink.Click  ’←要はこれをしたい!        'IE待機      Application.Wait 3000 '1000分の1秒 Do While .Busy = True DoEvents Loop Exit For End If Next End With Set objIE = Nothing End Sub

  • Web上のエクセルのVBA操作について

    OSはWin2000、エクセルも2000です。 社内のイントラネット上にエクセルのBOOKを置いてあります。 ダウンロードせずにダブルクリックでイントラ上で開いたこのBOOKに対するVBA操作で、以下の3つを試しましたが、すべてエラーになり、プレビューすることができません。 どう直せばよいのでしょうか? Sub test() ActiveSheet.PrintPreview End Sub Sub test2() ThisWorkbook.ActiveSheet.PrintPreview End Sub Sub test3() x = ThisWorkbook.ActiveSheet.Name ThisWorkbook.Sheets(x).PrintPreview End Sub また Sub 終了() ActiveWorkbook.Close (False) End Sub もまったく働きません。 どうやったら終了できますか?

  • EXCEL VBA作成で行き詰りました。助けてください。

    今、EXCEL のVBAを作成していて行き詰ってしまいました。 エクセルのシート(sheet1)に10桁数字が列にいくつかあります(E5からE6,E7へと毎日更新していきます)。 その10桁の数字を1つ選択(セルの数字をクリックするイメージでいます)してあるインターネット上のページの検索欄に自動記入→検索させたいと思っています。 その記入から検索までのおおまかな物は完成したのですが、セルを選んでという所がよくわかりません。 わかりにくい説明ですが、どうぞよろしくお願いいたします。 Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Sub kensaku() Set ie = CreateObject("InternetExplorer.application") ie.Visible = True ie.Navigate ("http://www.○○○○") i = 0 Do Until ie.busy = False Or i > 10 Sleep (1000) i = i + 1 Loop If i > 10 Then MsgBox ("タイムアウト") Exit Sub End If ie.document.all.Idno.Value = "ここに選択したセルの数字を入れたい" ie.document.all.Search.Click End Sub といった感じです。 私自身は、excel vba はかじった程度でここまでも色々と調べながらやっとたどりつきました。 どうぞ、初心者でもわかりますように、ご説明よろしくお願いいたします。