次の方法で共有

Excel2013にてVBAのApplication.UsableWidth, UsableHeightの挙動について

Anonymous
2018-12-12T05:45:12+00:00

お世話になっております。

Microsoft DocsにあるExcelVBAの解説「Application.UsableWidth」と「Application.UsableHeight」について、ウィンドウモードでの最大化のサンプルコードが示されていますが、実行しても解説通りの動きをしません。

With ActiveWindow

 .WindowState = xlNormal

 .Top = 1

 .Left = 1

 .Height = Application.UsableHeight

 .Width = Application.UsableWidth

End With

場合によってまちまちの結果となりますが、画面の1/4ほどの窓になったり、横長で縦が50ポイント程度しかない窓になったりします。

Application.UsableWidth, UsableHeightの実際の挙動を教えて下さい。宜しくお願い致します。

環境:

  • Windows10 Pro バージョン 1809 (OSビルド 17763.134) 64bit
  • Microsoft Excel 2013 (15.0.5075.1001) 32bit

Microsoft DocsのApplication.UsableWidth, UsableHeightの解説ページ

https://docs.microsoft.com/ja-jp/office/vba/api/excel.application.usablewidth

https://docs.microsoft.com/ja-jp/office/vba/api/excel.application.usableheight

Microsoft 365 と Office | Excel | 家庭向け | Windows

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

質問作成者が受け入れた回答

Anonymous
2018-12-12T08:19:53+00:00

> Microsoft DocsにあるExcelVBAの解説「Application.UsableWidth」と

> 「Application.UsableHeight」について、ウィンドウモードでの

> 最大化のサンプルコードが示されていますが

正しくは「アクティブ ウィンドウを可能な限り大きく表示」です。

本来は、Excel 2010 以前の環境においてアクティブなブックウィンドウの

位置とサイズをアプリケーションウィンドウ内のクライアント領域いっぱいに

フィットさせるようにするサンプルコードです。

( Excel 2010 のVBA ヘルプにも記載されています)

【コードの実行前】

【コードの実行後】

【ブックウィンドウが最大化された状態】

また、ここでのウィンドウモードとは Excel 2010 以前における

MDI 環境においては有効ですが、Excel 2013 以降における

SDI 環境では無効です。

Excel 2013 以降の場合、アクティブウィンドウとは

「アプリケーションウィンドウ(=アクティブなブックのウィンドウ)」、

UsableWidth や UsableHeight は「ブックの表示領域の幅/高さ」を指しますので、

当然 Excel 2010 以前の環境で実行した場合とは挙動が異なります。

この回答は役に立ちましたか?

3 人がこの回答が役に立ったと思いました。
0 件のコメント コメントはありません

1 件の追加の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2018-12-13T00:37:42+00:00

    sk.exe様

    お世話になっております。

    また、ここでのウィンドウモードとは Excel 2010 以前における

    MDI 環境においては有効ですが、Excel 2013 以降における

    SDI 環境では無効です。

    この説明で納得がいきました。確かに2010以前はMDI環境でしたね。スッキリしました。どうもありがとうございました。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません