• ベストアンサー

ExcelのVBAでユーザーの画面解像度によってズームの制御出来ますか?

お世話になります。 初心者なので、VBAが得意な方教えて下さい。 ユーザーの画面解像度(例:SVGA,XGA)を認識して、 SVGAだったら120%表示、XGAだったら100%、1280x1024だったら、90%表示のように 画面の解像度によってズームを%で具体的に指定したいのですが・・・もし解る方がいらっしゃったら教えて下さい。 よろしくお願いいたします。

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

  • ベストアンサー
noname#29107
noname#29107
回答No.1

APIで画面解像度を得て、変更するしかないと思います。 参考URLは、アクセスでの例になっていますが、EXCELでも同じソースで可能です。(Excel2002で検証) http://www2.moug.net/cgi-bin/technic.cgi?acvba+TI02010006 Declare から End Function までコピーして、変更するロジックを記述します。 例えば、 Sub test2() Dim wrkw As Long, wrkh As Long wrkw = GetWindowSize.Width wrkh = GetWindowSize.Height If wrkw = 1024 And wrkh = 768 Then   ActiveWindow.Zoom = 100 End If If wrkw = 1280 And wrkh = 1024 Then   ActiveWindow.Zoom = 80 End If If wrkw = 800 And wrkh = 600 Then   ActiveWindow.Zoom = 120 End If End Sub

参考URL:
http://www2.moug.net/cgi-bin/technic.cgi?acvba+TI02010006
suginami1910
質問者

お礼

回答ありがとうございます。 教えて頂いたのを元にいじっていたら、何とか動くようになりました。 ありがとうございました。

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

先日も似たご質問されてましたね。 API関数「GetDesktopWindow」でWEB照会して見てください。結構沢山出てきます。 例えば http://www2.moug.net/cgi-bin/technic.cgi?acvba+TI02010006 など。

suginami1910
質問者

お礼

前回教えて頂いたのを、元にやってみたのですが具体的な数値がうまく取れなかったもので・・・ 教えて頂いたwebを覗いてみましたが非常に参考になりました。ありがとうございました。