• ベストアンサー

VBAにて任意のアドレスでIEを立ち上げる

VBA(他でも構いません)等にて指定したアドレスでIEを立ち上げたいのですが全く素人で方法が分かりません。 具体的にはIEでサーバー上にある画像ファイルや、映像ファイルを開きたいのですが、さらに、そのファイル名の一部を変数として、その変数を任意に入力し、その値をファイル名に引き継がれるようにしてIEを立ち上げるというソフトを作りたいのですが・・・ どういった方法があるでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • ham_kamo
  • ベストアンサー率55% (659/1197)
回答No.3

> 入力する度にIEが都度立ち上がってしまうので、 > 「終了」という作業(例えば釦を押す等)で立ち上がった > IEを閉じる事、若しくはIEはそのままにファイルだけが > 更新されるような事も可能でしょうか? そのように修正してみました。 Const JpgURL As String = "http://???.???.??.??/?\\\\\/" Const WmvURL As String = "http://???.???.??.??/&&&&/" Public objIE1 As Object Sub OpenURL()  On Error GoTo IEClosed  Dim objIE2 As Object  Dim Param As String  Param = Worksheets("Sheet1").Range("A1").Value  If objIE1 Is Nothing Then   Set objIE1 = CreateObject("InternetExplorer.application")  End If  Set objIE2 = CreateObject("InternetExplorer.application")    objIE1.Visible = True  objIE2.Visible = True  objIE1.Navigate JpgURL & Param & ".jpg"  objIE2.Navigate WmvURL & Param & ".wmv"  Set objIE2 = Nothing  Exit Sub   IEClosed:  If Not objIE1 Is Nothing Then   Set objIE1 = Nothing   Set objIE1 = CreateObject("InternetExplorer.application")  End If  Call OpenURL End Sub Sub CloseIE()  On Error GoTo IEClosed  If Not objIE1 Is Nothing Then   objIE1.Visible = False  End If  Exit Sub   IEClosed:  If Not objIE1 Is Nothing Then   Set objIE1 = Nothing  End If End Sub ボタンを配置して、表示するときにはOpenURLを、画面を閉じるときにはCloseIEを実行するようにすればいいです。 画面を閉じるボタンを押さなくても(CloseIEを実行しなくても)、セルのファイル名を変えてOpenURLを実行すると、新しくIEのウィンドウが起動することはなく、そのまま表示が切り替わるはずです。

15974
質問者

お礼

度重なる質問に丁寧にお答え頂き大変助かっております。 ありがとうございます。動作も確認いたしました。 さらに甘えさせて頂きます。 (可能な範囲でお答えください。もう十分教えて頂きましたので) テキストボックスにファイル名を入力し、「実行」釦を押す事で、IEを立ち上げ、画像ファイル、映像ファイルを開く形とした場合、 (1)「実行」釦のコードに教えて頂いた内容を全て記述し、Param =の部分をテキストボックスを指定すれば良いでしょうか? (2)「クリア」という釦を作り、その釦を押した際にテキストボックスに入力した値を消す為には、そのコードにはどのように記述すればよいでしょうか? (2)さらにその「クリア」釦を押す事により立ち上げたIEを閉じる事はできないでしょうか?(頂いた内容であればこれは必要ないですか?) (3)このマクロを組んだExelファイルを、開いた時点で、このマクロを実行し、「終了釦」を作り、その釦により、Exelごと終了させるにはどうすれば良いでしょうか? 本当に度々申し訳ありません。 可能な範囲でご回答ください。 よろしくお願い致します。

その他の回答 (2)

  • ham_kamo
  • ベストアンサー率55% (659/1197)
回答No.2

No.1です。 > あるHTMLサーバー上の****.jpgファイル、****.wmvファイルを > 同時に開きたいのですが、その****部分を任意に入力する事で、 > ファイルを開きたいと思っております。 とありますが、****の部分は共通なのでしょうか。それとも異なる文字列なのでしょうか。 とりあえず、共通だと仮定して、JPGファイルとWMVファイルを同時に開くように修正してみました。拡張子を除いたファイル名(たとえばxxxx)をSheet1のセルA1に入力しておくと、xxxx.jpgとxxxx.wmvを開きます。 最初の2行のURLは、JPGファイルとWMVファイルが置かれているURLに書き換えてください。 Sub OpenURL()  Const JpgURL As String = "http://???.???.??.??/\\\\\/"  Const WmvURL As String = "http://???.???.??.??/&&&&/"  Dim Param As String  Dim objIE1 As Object, objIE2 As Object  Param = Worksheets("Sheet1").Range("A1").Value  Set objIE1 = CreateObject("InternetExplorer.application")  Set objIE2 = CreateObject("InternetExplorer.application")  objIE1.Visible = True  objIE2.Visible = True  objIE1.Navigate JpgURL & Param & ".jpg"  objIE2.Navigate WmvURL & Param & ".wmv"  Set objIE1 = Nothing  Set objIE2 = Nothing End Sub > また、この入力する画面もVBAで作る事ができるのでしょうか? シートを入力しやすいフォーマットにしてマクロ実行ボタンをつけるか、あるいはVBAのユーザフォームを使ったりして作れますが、ここで作り方を解説するのはちょっと難しいので、VBAの入門書などで勉強されるか、下記のHPなどを参照してみてください。 http://www.asahi-net.or.jp/~ef2o-inue/vba_k/sub04_080.html 他にも 「Excl VBA ユーザフォーム」のキーワードで検索すると解説しているサイトが見つかると思います。 申し訳ありませんが、メディアプレーヤーのプレイリストを操作する方法はわかりません。

15974
質問者

お礼

早速丁寧なご回答ありがとうございました。 早速実行してみました! さらに追加質問になってしまい恐縮ですが、使い方として、この作業を連続して行いたいのですが・・・ 入力する度にIEが都度立ち上がってしまうので、「終了」という作業(例えば釦を押す等)で立ち上がったIEを閉じる事、若しくはIEはそのままにファイルだけが更新されるような事も可能でしょうか? (メディアプレーヤーの方は問題ないです・・) 何度も何度も申し訳ありません。 よろしくお願いします。 ユーザーフォームについては勉強してみます!!

  • ham_kamo
  • ベストアンサー率55% (659/1197)
回答No.1

一例ですが、ExcelVBAでやる方法です。 Excelを起動し、Alt+F11でVBAの画面を開き、左側のツリーからブック名を選択し、右クリックから「挿入」>「標準モジュール」を選択して、右の画面に以下のマクロをコピーして貼り付けてください。 Sub OpenURL()  Dim Param As String  Dim objIE As Object  Param = Worksheets("Sheet1").Range("A1").Value  Set objIE = CreateObject("InternetExplorer.application")  objIE.Visible = True  objIE.Navigate "http://oshiete1.goo.ne.jp/kotaeru.php3?qid=" & Param  Set objIE = Nothing End Sub この例では、Sheet1のA1セルの番号の「教えてGoo」の質問を表示しています。たとえば、そのセルに2807325と入力して、Alt+F8からマクロを実行すると、この質問が表示されます。 セルから取得するのでなく、実行時にファイル名の一部を入力したいのであれば、 Param = Worksheets("Sheet1").Range("A1").Value の行を Param = InputBox("ファイル名の一部を入力してください。") と変えるとよいでしょう。

15974
質問者

お礼

ham_kamo様 早速のご回答ありがとうございます。 もう少し具体的に質問させて頂きます。 あるHTMLサーバー上の****.jpgファイル、****.wmvファイルを同時に開きたいのですが、その****部分を任意に入力する事で、ファイルを開きたいと思っております。 例えばURL部分が http://???.???.??.??/\\\\\/****.jpg" とhttp://???.???.??.??/&&&&/****.wmv"を2つ指定する事で、jpgファイルとwmvファイルを同時に開きたいのですが・・・ また、この入力する画面もVBAで作る事ができるのでしょうか? さらに可能であれば、wmvファイルを指定するとメディアプレーヤーが立ち上がるのですが、このプレイリストに(1)jpg(2)wmvという風にできたらさらに嬉しいです。 本当に素人の都合の良い質問で大変恐縮ですがご教示頂けたら幸いです。 よろしくお願い致します。

関連するQ&A