- 締切済み
エクセルのVBAを使用してのサイト更新に関しての質問です。
エクセルのVBAを使用してのサイト更新に関しての質問です。 現在、VBAを利用して各サイトの記事更新の一括処理を行っておりますが 画像の貼り付け時に不具合が起こりその解消方法に困っております まず、以下のような方法でサイトにアクセスを行っています。 ----------------------------------------------------------------------- Dim objIE As Object Set objIE = CreateObject("InternetExplorer.Application") objIE.Navigate "http://xxxxxxxxxxxxxx.com/" ----------------------------------------------------------------------- そして、ログイン後に以下のような方法でタイトル及び記事の入力を行っています。 ----------------------------------------------------------------------- objIE.document.forms(0).コントロールの名前.Value = タイトルテキスト objIE.document.forms(0).コントロールの名前.Value = 本文テキスト ----------------------------------------------------------------------- その後に画像のフルパスを入力させたいのですが上記方法ではうまくはまらないので 以下の方法で画像のフルパスを貼り付けています。 ----------------------------------------------------------------------- objIE.document.forms(0).Item("コントロールの名前").Select Application.SendKeys 画像のフルパス, True ----------------------------------------------------------------------- 動作環境は WINDOWS XP IE 7 です。 しかし、上記の方法で貼り付けを行った場合、IEがアクティブな状態でない場合に その時アクティブになっているアプリケーションに画像のフルパスが貼り付けられ る状態になっております。 この状態ですと、IEを起動しているPCで他の作業が行えないので今後IEがアクティ ブでない状態でも画像のパスが正常に埋め込まれるようにプログラムを変更したい と考えておりますが、現段階の知識では良い方法がわかりません 抜本的な変更も踏まえてこの問題解消に当たりたいと思っております 良い方法をご存知な方がおられましたら、ご教授いただけないでしょうか 何卒よろしくお願い致します。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- xls88
- ベストアンサー率56% (669/1189)
方法はあるようですが難しそうです。 EXCEL VBA でIEを制御して、INPUT type=file で出るダイアログに入力できませんか? http://oshiete1.goo.ne.jp/qa4624451.html INPUT type=file で出るダイアログに入力で窓を確実に取得したい。 http://soudan1.biglobe.ne.jp/qa5446271.html IEを開いて→ファイル参照のテキストボックスにパスを入れて→アップロードのボタンを押す】 http://www.accessclub.jp/bbs/0223/beginers68585.html VBAでのIE操作に関する質問です。ヤフオクに自動出品するプログラムを作成中なの http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1316627063
- mimeu
- ベストアンサー率49% (39/79)
objIE.Document.getElementById("thumb_news_image").Value = "画像のフルパス" ではいかがでしょうか?
- mimeu
- ベストアンサー率49% (39/79)
Dim IEのハンドル as Long IEのハンドル = objIE.HWND でハンドルを取得し SetForegroundWindow (IEのハンドル) APIで確実にIEの窓を前面に出した直後に 画像を貼り付けるとうまくいくと思います ご存じと思いますが、Declare Function が必要です。
- xls88
- ベストアンサー率56% (669/1189)
HTMLソースを提示できないでしょうか。
補足
ご回答ありがとうございます。 HTMLソースを提示する件ですが、いくつかサイトがありますので そのうちのひとつを載せてみます、よろしくお願いいたします。 以下がソースになります input type="file"のコントロールになります。 ---------------------------------------------------------------------------- <input type="file" name="thumb_news_image"> --------------------------------------------------------------------------------------- thumb_news_imageにselectを利用して画像のフルパスを張り付けております。 IEがActiveでなくても画像の貼り付けが可能であれば、 全く別の手段でも良い手段がありましたらご教授お願いいたします
お礼
ご回答ありがとうございます。 ご回答いただいた手段を試してみたところ、常にアクティブである必要がなくなり 大変使い勝手が良くなりました。 しかしながらアクティブになるタイミングがまったく存在しなくてよい処理を理想としておりますので もう少し質問を続けさせてくださいませ。