VBAでのフォーム入力は現在閲覧しているページ?
未読分:9件
昨日以降(0) 2日前以降(0) 3日前以降(0) 4日前以降(0) 5日前以降(0)
近田 伸矢, 植木 悠二, 上田 寛
IEのデータ収集&自動操作のプログラミング本はこの1冊だけ!IEの起動やポップアップウィンドウ、表示を制御する基本的なコードはもちろん、テキストボックスやラジオボタン、表、ハイパーリンクなどのHTML部品を制御する方法など、自動操作に欠かせないノウハウを丁寧に解説。
Message#9 2016年3月24日(木)20時30分 From: VBAマスター | 返事 削除 変更 |
問題点は特に無いですが、Cの画面遷移も決まっているのならそこも自動化はできると思いますよ。 もちろんBのログイン処理もですが。 > VBAマスターのメッセージ(#7)への返事 > > > フォーカスが移るについてはおっしゃるとおりJavaScriptでよく利用される処理なのでそうかもしれないですね。 > > > > ただ、バーコードリーダーを読み取る手動処理があるので、最初にバーコード一覧を作成してループ処理させていけば、自動化できますしフォーカスが移る部分も考慮しなくてすみそうな気がしますね。 > > はい。そうだと思います。 > JavaScriptオフでのバーコード入力を試してみたのですが、ページ自体が反応せず入力もできませんでした。 > > ここは正攻法?のIEをVBAで制御して入力する方法を探求してみたいと思います。 > このサイト「VBAのIE制御」のサンプルコードを実行して、おおまかなエクセルとIEの関係が見えてきたところです。 > > ただ、がっつりとVBAを勉強する前に一つ質問をさせてください。 > 次のような手順を考えております。 > > @エクセルシートに入力用の商品番号のデータを用意しておく。 > Aエクセル(VBA)でIEを起動し、目的のサイト入口を開く。 > B手動にて目的のサイトにログイン。 > C手動にていくつかの画面を遷移し、目的のページ(商品番号の入力画面)までたどり着く > Dエクセル(VBA)にて、商品番号を連続して入力する。 > E入力が終えたらエクセル(VBA)でIEを閉じる。以上です。 > > > このような手順だと、なんとかできる気がしますが、何か問題になる点とかありますでしょうか? > よろしくお願いします。 |
Message#8 2016年3月24日(木)19時48分 From: ふぃぐ | 返事 削除 変更 |
VBAマスターのメッセージ(#7)への返事 > フォーカスが移るについてはおっしゃるとおりJavaScriptでよく利用される処理なのでそうかもしれないですね。 > > ただ、バーコードリーダーを読み取る手動処理があるので、最初にバーコード一覧を作成してループ処理させていけば、自動化できますしフォーカスが移る部分も考慮しなくてすみそうな気がしますね。 はい。そうだと思います。 JavaScriptオフでのバーコード入力を試してみたのですが、ページ自体が反応せず入力もできませんでした。 ここは正攻法?のIEをVBAで制御して入力する方法を探求してみたいと思います。 このサイト「VBAのIE制御」のサンプルコードを実行して、おおまかなエクセルとIEの関係が見えてきたところです。 ただ、がっつりとVBAを勉強する前に一つ質問をさせてください。 次のような手順を考えております。 @エクセルシートに入力用の商品番号のデータを用意しておく。 Aエクセル(VBA)でIEを起動し、目的のサイト入口を開く。 B手動にて目的のサイトにログイン。 C手動にていくつかの画面を遷移し、目的のページ(商品番号の入力画面)までたどり着く Dエクセル(VBA)にて、商品番号を連続して入力する。 E入力が終えたらエクセル(VBA)でIEを閉じる。以上です。 このような手順だと、なんとかできる気がしますが、何か問題になる点とかありますでしょうか? よろしくお願いします。 |
Message#7 2016年3月23日(水)22時22分 From: VBAマスター | 返事 削除 変更 |
フォーカスが移るについてはおっしゃるとおりJavaScriptでよく利用される処理なのでそうかもしれないですね。 ただ、バーコードリーダーを読み取る手動処理があるので、最初にバーコード一覧を作成してループ処理させていけば、自動化できますしフォーカスが移る部分も考慮しなくてすみそうな気がしますね。 > 自己解決というか。。 > > このサイト[VBAのIE制御入門]をずっとまわってみると、なんとなくわかってきたような気がしました。 > 私がどうやら勘違いをしていたようです。 > あくまで、VBAでIEを制御するということで、VBAで直接webとやりとりをするわけではないのですね。 > > ですから、動的か静的にかかわらず、当然IEを通じて閲覧しているサイトをVBAでやり取りすることも可能なのだと。 > > 実際には起動しているIEが複数あったり、タブで複数のサイトを表示していることがありますので、そのうちどれかを特定する必要はあると思いますが。。 > > > 話がそれますが、私が使用しているバーコードリーダーは、番号入力後に改行が入ります。 > 改行が入るとフォーカスが次の要素に進むのは、そういったJavaScriptを記述されているからかもしれません。 > 場合によってはブラウザ側でJavaScriptをオフにすれば連続でのバーコード入力ができるかもしれません。こちらも試してみたいと思います。 |
Message#6 2016年3月23日(水)22時19分 From: VBAマスター | 返事 削除 変更 |
基本的に動的であろうとプログラムで生成されているのならルールがありますので、それに沿ってVBAで制御していくだけになります。 勘違いしていたとのことですが、セッション情報は関係なく「商品番号を入力」部分にあると思いますよ。 ふぃぐのメッセージ(#4)への返事 > VBAマスターのメッセージ(#3)への返事 > > 返答ありがとうございました。 > 説明が悪くて申し訳ありません。ちょっとバーコードリーダーの件は忘れてください。 > > 私が気にしているのは、 > 「動的に生成されたwebページを現在IEで閲覧しているとします。 > そのページに対してVBAで制御できるのかという件」です。 > > 静的なページに対してならURLを指定することでVBAで制御できるだろうとの理解はできますが、動的なページであれば、同じURLでも異なる表示が載せられることがあるかもしれません。 > > ましてや、ログインしてサービスを提供するサイトなら、各々の提供できる情報は異なってきます。 > 私が商品番号を入力しようとするwebサービスもそういったサイトです。 > > こういったのをセッション情報というようですが、私の質問は「現在閲覧しているIEとエクセルがセッション情報を共有できるのか」ということに言い換えられるかもしれません。 > > わかりづらくてすいません。よろしくお願いいたします。 |
Message#5 2016年3月23日(水)20時31分 From: ふぃぐ | 返事 削除 変更 |
自己解決というか。。 このサイト[VBAのIE制御入門]をずっとまわってみると、なんとなくわかってきたような気がしました。 私がどうやら勘違いをしていたようです。 あくまで、VBAでIEを制御するということで、VBAで直接webとやりとりをするわけではないのですね。 ですから、動的か静的にかかわらず、当然IEを通じて閲覧しているサイトをVBAでやり取りすることも可能なのだと。 実際には起動しているIEが複数あったり、タブで複数のサイトを表示していることがありますので、そのうちどれかを特定する必要はあると思いますが。。 話がそれますが、私が使用しているバーコードリーダーは、番号入力後に改行が入ります。 改行が入るとフォーカスが次の要素に進むのは、そういったJavaScriptを記述されているからかもしれません。 場合によってはブラウザ側でJavaScriptをオフにすれば連続でのバーコード入力ができるかもしれません。こちらも試してみたいと思います。 |
Message#4 2016年3月23日(水)19時20分 From: ふぃぐ | 返事 削除 変更 |
VBAマスターのメッセージ(#3)への返事 返答ありがとうございました。 説明が悪くて申し訳ありません。ちょっとバーコードリーダーの件は忘れてください。 私が気にしているのは、 「動的に生成されたwebページを現在IEで閲覧しているとします。 そのページに対してVBAで制御できるのかという件」です。 静的なページに対してならURLを指定することでVBAで制御できるだろうとの理解はできますが、動的なページであれば、同じURLでも異なる表示が載せられることがあるかもしれません。 ましてや、ログインしてサービスを提供するサイトなら、各々の提供できる情報は異なってきます。 私が商品番号を入力しようとするwebサービスもそういったサイトです。 こういったのをセッション情報というようですが、私の質問は「現在閲覧しているIEとエクセルがセッション情報を共有できるのか」ということに言い換えられるかもしれません。 わかりづらくてすいません。よろしくお願いいたします。 |
Message#3 2016年3月23日(水)12時54分 From: VBAマスター | 返事 削除 変更 |
詳しくは調べていませんが、たしかバーコードリーダーには読み取り後にEnter押下する仕様になっているものがあったと思います。 Enter押下で次へ移動しているのであれば、原因の1つかもしれないですね。 ただし、持っているバーコードリーダーがEnter機能を無効にできるかは分かりませんので、メーカーに問い合わせてみてください。 > > > VBAのソースを拝見すると、URLへのリンクが書かれておりますが、これは現在IEで閲覧している > > ページに対してフォーム入力できるのでしょうか? > > > > バーコードを入力する画面は、いくつかの推移をへてたどり着いております。 > > 商品の条件が違えば、当然同じURLでも入れるべき商品番号が異なります。 > > 自分でもわかりずらい説明でしたが、調べてみるとセッションに関する質問でした。 > 現在エクセルとは無関係に閲覧できている認証後のwebページに対して > セッションを引き継いでエクセルVBAで制御できるのでしょうか? |
Message#2 2016年3月23日(水)09時16分 From: ふぃぐ | 返事 削除 変更 |
> VBAのソースを拝見すると、URLへのリンクが書かれておりますが、これは現在IEで閲覧している > ページに対してフォーム入力できるのでしょうか? > > バーコードを入力する画面は、いくつかの推移をへてたどり着いております。 > 商品の条件が違えば、当然同じURLでも入れるべき商品番号が異なります。 自分でもわかりずらい説明でしたが、調べてみるとセッションに関する質問でした。 現在エクセルとは無関係に閲覧できている認証後のwebページに対して セッションを引き継いでエクセルVBAで制御できるのでしょうか? |
Message#1 2016年3月22日(火)21時01分 From: ふぃぐ | 返事 削除 変更 |
web上のシステムで商品管理を行っています。 商品番号のバーコードをバーコードリーダで読み取り、テキストボックスに入力するのですが、 webページの作りが悪いのか、バーコードを入力するとテキストボックスへの入力フォーカスが 移動してしまいます。 そのたびにマウスでテキストボックスへ再度カーソルを合わせてフォーカスをもとに戻しています。 商品が数点なら良いのですが、数百点もある場合があり正直面倒です。 そこで、前もってエクセルに対してバーコードで全部の商品番号を打ち込み、VBAで連続的にフォームへ 入力できないかと思案しております。 VBAのソースを拝見すると、URLへのリンクが書かれておりますが、これは現在IEで閲覧している ページに対してフォーム入力できるのでしょうか? バーコードを入力する画面は、いくつかの推移をへてたどり着いております。 商品の条件が違えば、当然同じURLでも入れるべき商品番号が異なります。 基本的過ぎてすいませんが、不思議におもいます。どうぞよろしくお願いします。 |
昨日以降 2日前以降 3日前以降 4日前以降 5日前以降