Christopherは、マクロ内で、Excelプログラムウィンドウのサイズを設定する必要があります。彼はプログラムウィンドウ内でワークシートのサイズを設定する方法を知っていますが、それは彼が必要としているものではありません。彼は、プログラムウィンドウの全体的なサイズをどのように設定できるのか、さらにユーザーの実際の画面サイズよりも大きく設定しないようにする方法を考えています。

これは、マクロで使用するオブジェクトとプロパティがわかっている場合は、かなり簡単に実行できます。使用するオブジェクトは、Excelアプリケーションを参照するApplicationオブジェクトです。関連するプロパティは次のとおりです。

Top。*アプリケーションウィンドウの上端を配置する画面のピクセル。

左。*アプリケーションウィンドウの左端を配置する画面のピクセル。

幅。*アプリケーションウィンドウの幅(ピクセル単位)。

高さ。*アプリケーションウィンドウの高さ(ピクセル単位)。

これらを念頭に置いて、次の方法でプログラムウィンドウの位置とサイズを設定できます。

Sub SetWindowSize1()

Application.WindowState = xlNormal     Application.Top = 25     Application.Left = 25     Application.Width = 300     Application.Height = 200 End Sub

このマクロは、プログラムウィンドウの左上隅を画面の上部から25ピクセル、画面の左側から25ピクセルに指定します。次に、プログラムウィンドウを幅300ピクセル、高さ200ピクセルに設定します。また、マクロの最初のWindowStateプロパティの設定にも注意してください。これにより、ウィンドウが「通常」の状態に設定されます。つまり、最小化よりも大きく、最大化よりも小さいサイズにサイズ変更できます。 (Excelプログラムウィンドウで画面全体を表示する場合は、WindowStateプロパティをxlMaximizedに設定し、マクロの残りの設定を忘れてください。)

もちろん、このマクロはExcelプログラムウィンドウをかなり小さく設定します。

おそらく、大きくしたいのですが、ユーザーの画面のサイズより大きくしたくないでしょう。ユーザーの画面のサイズを把握する最も簡単な方法は、Excelアプリケーションウィンドウを最大化してから、[幅]プロパティと[高さ]プロパティを確認することです。次に、画面の左上隅を配置する場所に基づいてこれらの数値を調整し、それに応じて調整できます。

例として、プログラムウィンドウを25、50から開始し、1000 x500にしたいとします。次のようなコードを使用できます。

Sub SetWindowSize2()

Dim iMaxWidth As Integer     Dim iMaxHeight As Integer     Dim iStartX As Integer     Dim iStartY As Integer     Dim iDesiredWidth As Integer     Dim iDesiredHeight As Integer

iStartX = 50      ' Distance from left     iStartY = 25      ' Distance from top     iDesiredWidth = 1000     iDesiredHeight = 500

With Application         .WindowState = xlMaximized         iMaxWidth = Application.Width         iMaxHeight = Application.Height

' Adjust for starting point         iMaxWidth = iMaxWidth - iStartX         iMaxHeight = iMaxHeight - iStartY         If iDesiredWidth > iMaxWidth Then             iDesiredWidth = iMaxWidth         End If         If iDesiredHeight > iMaxHeight Then             iDesiredHeight = iMaxHeight         End If

.WindowState = xlNormal         .Top = iStartY         .Left = iStartX         .Width = iDesiredWidth         .Height = iDesiredHeight     End With End Sub

注:

このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(10938)は、Microsoft Excel 97、2000、2002、および2003に適用されます。

Excel(Excel 2007以降)のリボンインターフェイスに関するこのヒントのバージョンは、次の場所にあります: