• ベストアンサー
  • 困ってます

IE 「拡大レベルの変更」を調整したい

IE8+offce2003です。 ブラウザの右下に「拡大レベルの変更」というのがあり 手動で100%や75%に変更できますが vbaで変更する方法はありますか? とあるページを開く時は100%、違うページを開く時は75%、 としていので、手動ではなくvbaで行ないたいです。 Sub test() Set ObjIE = CreateObject("InternetExplorer.application") ObjIE.Visible = True ObjIE.Navigate "http://www.yahoo.co.jp/" Do While ObjIE.Busy = True '表示させるまで待つ DoEvents Loop 'サイズの調整をする処理 End Sub コードを聞くのはご法度かもしれませんが ご教授よろしくお願い致します。

共感・応援の気持ちを伝えよう!

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

  • ベストアンサー
  • 回答No.2

こんばんは。 IEの操作に詳しいわけではありませんが、 以下でどうでしょうか? Sub test2()   Const OLECMDID_OPTICAL_ZOOM = 63   Const OLECMDEXECOPT_DODEFAULT = 0   Dim ObjIE As Object   Dim ZoomRate As Variant      ZoomRate = 70 '拡大率   Set ObjIE = CreateObject("InternetExplorer.application")   ObjIE.Visible = True   ObjIE.Navigate "http://www.yahoo.co.jp/"   Do While ObjIE.Busy = True '表示させるまで待つ     DoEvents   Loop   'サイズの調整をする処理   ObjIE.ExecWB OLECMDID_OPTICAL_ZOOM, _           OLECMDEXECOPT_DODEFAULT, _             CLng(ZoomRate)                Set ObjIE = Nothing End Sub

共感・感謝の気持ちを伝えよう!

質問者からのお礼

うまくできました!ありがとうございます。

その他の回答 (2)

  • 回答No.3

#2です。 追加情報です。 ご参考までに。 ' 「ツール」→「参照設定」で「Microsoft Internet Controls」に ' チェックを入れると下記2行は不要です。 ' Const OLECMDID_OPTICAL_ZOOM = 63 ' Const OLECMDEXECOPT_DODEFAULT = 0

参考URL:
http://www.ken3.org/cgi-bin/group/vba_ie_object.asp

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ご丁寧にありがとうございます。参考になりました。

  • 回答No.1
  • xls88
  • ベストアンサー率56% (669/1189)

↓こちらが参考になります。 IEの表示サイズ変更 http://park7.wakwak.com/~efc21/cgi-bin/exqalounge.cgi?print+200902/09020023.txt

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ありがとうございます。 ObjIE.Document.Body.runtimeStyle.Zoom = "80%" でできました。

関連するQ&A

  • vbaでIEを閉じるだけの処理

    オフィス2003を使用しています。 「IEを開いて閉じる」は Sub TEST() Set ObjIE = CreateObject("InternetExplorer.application") ObjIE.Visible = True '見えるようにする '文字列で指定したURLに飛ぶ ObjIE.navigate "http://www.yahoo.co.jp/index.html" '表示終了まで待つ Do While ObjIE.Busy = True DoEvents Loop ObjIE.Quit End Sub と言うことがわかったのですが 開くのは他の作業をしたときに行うので 「閉じる」だけをvbaで行いたいのですがどうすればいいのかわかりません。 Sub TEST2() Set ObjIE = CreateObject("InternetExplorer.application") ObjIE.Visible = True '見えるようにする ObjIE.Quit End Sub だと また新たなIEが起動してしまい「現在起動しているIEを閉じる」と言うことができません。 アドバイスをお願い致します。

  • vbaでIEの操作

    こんばんは。やりたいことができないので教えてください。 vbaで指定のurlを開きたいです。 エクセル2003とIE8です。 Sub test001() Dim ObjIE As Object Set ObjIE = CreateObject("InternetExplorer.application") ObjIE.Visible = True ObjIE.navigate "http://jp.msn.com/" Do While ObjIE.Busy = True '表示させるまで待つ DoEvents Loop End Sub これでIEを立ち上げてURLを開けるのですが これでは新しいウインドウで開いてしまいます。 現在IEを立ち上げていて、上記のコードを実行すると 新たなタブで開きたいですが解決策はありますか? ObjIE.Visible = True が原因かと思い、これを抜かしてみましたが そうすると何も起こりません。 VBAで既に開いているIEの新しいタブでURLを開く方法をご教授ください!よろしくお願いします。

  • ie操作 ローカルパスだとエラーになる

    ヤフーなら問題なくコードが動くのに、URLがローカルのパスだと、エラーになってしまいます。 具体的には、 *********************************************************** Sub Sample1() Set objIE = CreateObject("InternetExplorer.Application") objIE.Navigate "http://www.yahoo.co.jp/" objIE.Visible = True Do Until objIE.ReadyState = 4 Loop Do While objIE.Busy = True DoEvents Loop End Sub *********************************************************** だと、問題なく実行されるのに、 *********************************************************** Sub Sample2() strFName = MyDesktop & "\index.html" Set objIE = CreateObject("InternetExplorer.Application") objIE.Navigate strFName objIE.Visible = True Do Until objIE.ReadyState = 4 Loop Do While objIE.Busy = True DoEvents Loop End Sub ------------------------- Function MyDesktop() Dim WSH As Variant Set WSH = CreateObject("Wscript.Shell") MyDesktop = WSH.SpecialFolders("Desktop") Set WSH = Nothing End Function *********************************************************** だと、 Do Until objIE.ReadyState = 4 で オートメーションエラー 起動されたオブジェクトはクライアントから切断されました。 となります。 なぜローカルだと、エラーになるのでしょうか? 何が違うのでしょうか?

  • DoEvents

    VBSでDoEventsは使えないのでしょうか? *************************** Dim ObjIE dim i Set ObjIE = CreateObject("InternetExplorer.Application") ObjIE.Navigate "http://oshiete.goo.ne.jp/" ObjIE.Visible = True Do While ObjIE.Busy = True DoEvents Loop Do While ObjIE.Document.ReadyState <> "complete" DoEvents Loop Set ObjIE = Nothing *************************** だと、エラーになりました。 Wscript.sleep 3000 ならエラーにならずにコードは動きました。 VBAならDoEventsは使えるのに VBSで使えない理由を教えてください。

  • ie操作 ボタンが押せる時と押せない時がある

    こんばんは。よろしくお願いします。 ie操作でボタンが押せる時と押せない時があるのですが、 違いがわかりません。 --------------------------------------------------------- Sub test1() Dim objIE As Object Set objIE = CreateObject("InternetExplorer.Application") objIE.Visible = True objIE.Navigate "http://www.mitsui-direct.co.jp/customer/" 'ダイレクトにログインページへはいけない。 Do While objIE.Busy = True Or objIE.ReadyState <> 4 DoEvents Loop objIE.Navigate "javascript:gotoMyhp();" Set objIE = Nothing End Sub --------------------------------------------------------- これなのですが、http://www.mitsui-direct.co.jp/customer/のサイトへいって、 右側の「Myホームページログイン」を押したいのですが、 最初は、objIE.Navigate "javascript:gotoMyhp();" でうまくいってたのですが、 なぜか出来なくなってしまいました。 そんな事ありますか? コードが間違ってるのでしょうか? ご教授よろしくお願いします。

  • 無限ループ objIE.Navigate

    win8.1でvbaでブラウザを操作しています。 XPからWIN7までは、 Sub Sample() Dim objIE As InternetExplorer Set objIE = CreateObject("InternetExplorer.application") objIE.Visible = True objIE.Navigate "http://www.yahoo.co.jp/" Do While objIE.Busy = True DoEvents Loop objIE.Navigate "http://shopping.yahoo.co.jp/" ・・・ このように、 objIE.Navigate に、URLを入れ替えても、問題なく表示できたのですが win8からは objIE.Navigateで、1つ目のURLを表示させ、2つ目のURLを表示させると、 見た目は、 二つ目の"http://shopping.yahoo.co.jp/"が表示されるのですが、 objIEの中身は、1つ目の "http://www.yahoo.co.jp/"のままです。 なので、 objIE.Navigate "http://shopping.yahoo.co.jp/" のあとに、 Do While objIE.Busy = True DoEvents Loop をしても、 objIEに格納されている値は、 "http://www.yahoo.co.jp/"だから 無限ループしてしまいます。 この現象を回避するにはどうすればいいでしょうか? エクセル2010です。 よろしくお願いします。

  • 現在表示されているURLを取得したいのですが

    Sub test1() Dim objIE As InternetExplorer Set objIE = CreateObject("InternetExplorer.Application") objIE.Visible = True objIE.Navigate "http://www.goo.ne.jp/" Do While objIE.Busy = True Or objIE.ReadyState <> 4 DoEvents Loop Debug.Print objIE.Navigate Set objIE = Nothing End Sub //////////////////////////////////////////////// をやろうとすると、 Debug.Print objIE.Navigate の部分で、「引数は省略できません。」とエラーになります。 どう修正すればいいか教えてください。 ("http://www.goo.ne.jp/"はダミーです)

  • vbaでyahooメールの受信メールの一覧を読み取

    vbaでyahooメールの受信メールの一覧を読み取る方法はありますか? Sub test() Dim objIE As InternetExplorer Set objIE = CreateObject("InternetExplorer.Application") objIE.Visible = True objIE.Navigate "http://login.yahoo.co.jp/config/login?logout=1" 'ログアウトする Do While objIE.Busy = True Or objIE.ReadyState <> 4 DoEvents Loop objIE.Navigate "https://login.yahoo.co.jp/config/login?.src=&.pd=&.done=http%3A//www.yahoo.co.jp/" Do While objIE.Busy = True Or objIE.ReadyState <> 4 DoEvents Loop objIE.Document.all.UserName.Value = "" objIE.Document.all.passwd.Value = "" Do While objIE.Busy = True Or objIE.ReadyState <> 4 DoEvents Loop objIE.Document.Forms(0).submit Do While objIE.Busy = True Or objIE.ReadyState <> 4 DoEvents Loop objIE.Navigate "http://jp.mc1003.mail.yahoo.co.jp/mc/welcome?.rand=6i0loli2li7s6&noFlush&YY=940152127#_pg=showFolder&fid=Inbox&order=down&tt=84&pSize=25&.jsrand=6381767" Do While objIE.Busy = True Or objIE.ReadyState <> 4 DoEvents Loop Debug.Print objIE.Document.Body.innerHTML Set objIE = Nothing End Sub これでログインまではできるのですが、その後のソースを読み取っても受信メールの一覧は読み取れません。 ログイン後に、vbaではなく手動でWEBクエリをやってソースに書き出してみましたがやはり受信メールだけは読み取れません。 WEBクエリならフォルダの一覧は読み取れました。 VBAで読み取るのは不可能なのでしょうか?

  • 住所を入力し、検索ボタンをクリックしたいのですが

    グーグルマップを開き 住所を入力し、検索ボタンをクリックしたいのですが それをvbaで実現可能でしょうか? Dim objIE As Object Sub Sample() Dim myObj As Object Set objIE = CreateObject("InternetExplorer.application") objIE.Visible = True objIE.navigate "https://www.google.co.jp/maps" Do While objIE.Busy = True DoEvents Loop Do While objIE.document.readyState <> "complete" DoEvents Loop Set objIE = Nothing End Sub はできたのですが 「グーグルマップを検索する」が ソース内で見当たらないし さらに 検索ボタンもソース内で探せません。 グーグルの検索窓に「東京都千代田区丸の内1-9-1」 トイレたいのですが VBAでどうすればいいのでしょうか?

  • 「地図」で検索するにはどういう操作をすればいいので

    ヤフーのトップページから 値を入れて検索を押すまではできるのですが 「ウェブ」ではなく「地図」で検索するにはどういう操作をすればいいのでしょうか? Sub yahoo() Dim objIE As Object Set objIE = CreateObject("InternetExplorer.Application") objIE.Visible = True objIE.Navigate "http://www.yahoo.co.jp/" Do While objIE.Busy = True DoEvents Loop Do While objIE.Document.ReadyState <> "complete" DoEvents Loop objIE.Document.forms(0).elements("p").Value = "東京" '‘「地図」をクリックする操作をしたい objIE.Document.forms(0).submit Set objIE = Nothing End Sub 宜しくお願いいたします。