• ベストアンサー

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

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

  • 15974
  • お礼率64% (9/14)

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

  • ベストアンサー
  • 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

  • VBAにて:開いているIEのアドレスを取得するには?

    セルに入力してあるアドレスを利用して、VBAからIEを開き、そのサイトを開くことが出来ます。 ところが、そのアドレスが現在は使われてなくて、 ”お探しのページが見つかりませんでした” と表示されることがあります。 この時、IEをVBAから閉じたいのですが、その判断方法として、 セルのアドレスとIEに表示されているアドレスが異なる ことを利用しようと考えています。 そのために、IEのアドレスの取得方法を知りたいのです。 ご存知の方お願いします。

  • VBA IEの Vallue の値を取得 して保存

    VBAでIEのVallueの値を取得して 指定した場所に .txt として保存する方法はありますか? ありましたらやり方を教えてください。

  • VBAについて

    ExcelのVBAで、ブック内のシートに飛ぶハイパーリンクを設定するマクロを組みたいんですが、シート名に変数を使うと、変数として認識されません。ためしにシート名を指定してみるとうまくいくんですが、どうしても変数を使いたいのです。いい方法ありますか?

  • Excel VBA 任意の個数のセルの統合

    Excel VBAの質問です。 整数型の変数 colNo は2~50の値を取ります。 任意の1セルが選択されていて、そのセルから右にcolNo個のセルを統合(MergeCells) したいのですが、方法がわかりません。 どのようにコーディングしたらよいのでしょうか。 Excel2002を使用しています。 よろしくお願いいたします。

  • Word VBA: 任意の html ファイルをファイルを開くダイアログから開くには?

    こんにちは、 Word VBA のことで質問があります。 今任意の html ファイルを[ファイルを開く]ダイアログから開くというマクロを作りたいので下記のプログラムを書きましたがこれではあらかじめファイル名やパスが指定されたものになってしまうので目的を満たせないと気づきました。。 Documents.Open メソッドではファイル名の指定が必須だそうですし、、そうするとほかに考えられる手段はどんなものか、 変数を使えばできそうですが、具体的にはどんなプログラムを組めばよいかなど悩んでいます。 ちなみにマクロを作成する環境は word 2003 です。 ***以下、現状のプログラム内容です。*** Private Sub OpenButton_Click() '任意の html ファイルを開き、[File Path] テキストフィールドへファイルのフルパスを表示します Dim dlgOpen As FileDialog Set dlgOpen = Application.FileDialog( _ FileDialogType:=msoFileDialogOpen) With dlgOpen .AllowMultiSelect = False If .Show = -1 Then MainWindow.TextBox1 = .SelectedItems(1) Documents.Open FileName:="C:\test.html", Format:=wdOpenFormatEncodedText End If End With End Sub ************************************************************ 目的を満たすためにはどのようなプログラムをかけばよろしいのか どなたかご指導いただけませんでしょうか よろしくお願いいたします。

  • エクセルVBAで、任意指定のファイル名を取得する方法を

    教えて下さい。 ファイル(エクセルブック)を数個開いています。そのうち基本となるファイル(便宜上基本ファイルとします)は常に開いていて、後の数個の作業ファイルを開きます。(作業ファイルはその都度入れ替わり固定のファイルではありません)  基本ファイルを、アクティブな状態でエクセルVBAマクロを走らせます。 そのマクロ実行中に、『ある作業ファイルの任意のセル(任意のセル)をクリックして、そのファイル名とシート名とセルのアドレスとそのセルの値を取得』して、基本ファイルの任意のセル(例えば基本ファイルのsheet1のセルA2~D2に)に記入したいのです。 分かりにくい文で申し訳ないですが、特に上の『 』内の部分です。 どのようにマクロを記述すればいいのか分からないので、教えて下さい。宜しくお願いします。

  • ExcelのVBA。public変数の値が消える

    VBAについて。Excelの2003や2007を使っています。標準モジュールで public 変数を定義しました。 ユーザーformを使い、パブリック変数に値を入れたり変更し、標準モジュールに戻ったとき、そのpabulic変数が resetされてしまっている事があります。全く同じマクロで、この現象が起こることと、起こらないことがあります。excelの2003でも2007でも、同じ現象が起こります。簡単なマクロで再現性のある具体的なものを示したいと思い、試しましたが、できませんでした。簡単なマクロでは、きちんとパブリック変数は保持されています。問題のあるマクロはかなり長いものなので、とても示せません。問題がどこにあるのかわかりません。このマクロで不都合があるという具体的なマクロを示すことができない状態での質問で、申し訳ありません。 また、このようなプログラミングをしていて思ったのですが、ユーザーフォームに対してユーザーが任意の引数を渡す方法あるいは、ユーザーフォームから引数を受け取る方法はあるのですか?今は、pubulic変数を用いたり、具体的なセルに値を代入したりしていますが、どう考えてもそれはエレガントではないし、汎用性もないと思います。引数で引き渡すのが一番綺麗でいいとは思うのですが、それが可能かどうかわかりません。

  • VBAでのファイル読込エラーの対応方法

    VBAについては、かなり素人です。 エクセルのメインシートからバックグラウンドで任意のファイルを次のようなVBAで読み込んでいます。 次の場合では、存在しないファイル名等をセットすると「ファイル読込エラー」になります。「存在しないファイルが指定されています」等を表示し、Open命令では、ストップしないようにするには、どう記述すればいか教示願います。 PathName:任意のパス名   CarentFile:任意のファイル名  Application.ScreenUpdating = False Set ObjBook = Workbooks.Open(Filename:=PathName & "\" & CarentFile)

  • VBAからEXCELの新規ファイルを作成する

    VB6.0 Excel2000を使用しています。 VBAからEXCELファイルを参照する方法は前回教えていただきましたが 新規にEXCELファイルを作成する方法がわからないので教えてください。 【やりたいこと】 ・ファイル名は、ダイアログボックスから入力され、フルパスで変数に  格納されています。 ・シート名は固定文字で指定します。 (↑ここまではできています) (↓ここからわかりません) ・セルの内容を編集したあと、指定のファイル名・シート名で保存したい よろしくお願いします。

  • Excel VBAで任意の名前のシートが存在するか調べたい。

    VBAコード内で、変数を使ってシート名をつけて挿入しようとしていますが、 その前に、その変数の名前を使ったシートがそのファイル内(ブック内)に あるかどうかを調べるようなコードはありますか?

専門家に質問してみよう