ExcelVBAのウィンドウサイズを固定する方法

このQ&Aのポイント
  • ExcelVBAでは、ActiveWindowでウィンドウサイズを固定することはできますが、Applicationのウィンドウサイズを固定することはできません。
  • 具体的には、VBAのコードでApplicationオブジェクトのWidthとHeightを指定しても、ウィンドウサイズが固定されずに変更されてしまいます。
  • そのため、Applicationのウィンドウサイズを固定したい場合は、他の方法を検討する必要があります。
回答を見る
  • ベストアンサー

ExcelVBA ウィンドウサイズをリサイズしない

いつもお世話になっています。 ActiveWindow でウィンドウサイズを固定することはできるのですが、 Applicationのウィンドウサイズを固定することができません。 VBAではできないのでしょうか。 教えてください。 以下を実行すると、「オブジェクトをサポートしていません」とエラーが表示されます。 Sub Auto_Open() With Application .WindowState = xlNormal .Width = 600 .Height = 400 .EnableResize = False  '---ウィンドウサイズを変更できない End With End Sub

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

  • ベストアンサー
  • akina_line
  • ベストアンサー率34% (1124/3287)
回答No.1

こんにちは。  デバッグしてみると分かりますが、   >EnableResize = False  '---ウィンドウサイズを変更できない  この行でエラーになります。  ヘルプを見るとApplication オブジェクトには無いプロパティのようです。 では。

suzupen
質問者

お礼

早々にご回答ありがとうございます。 何とか別方法で回避することにいたしました。 このたびはありがとうございます。

関連するQ&A

  • UsableHeight シート名が消える

    エクセルvbaでリボンを非表示にして、ブックを最大化して、微調整したいのですが Workbook_Openイベントで実行すると、シート名が見えない状態になります。 コードはこれです。 Private Sub Workbook_Open() Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",False)" 'リボンを非表示にする ActiveWindow.WindowState = xlMaximized 'ウィンドウを最大化する With ActiveWindow .WindowState = xlNormal .Top = 0 .Left = 0 .Width = Application.UsableWidth .Height = Application.UsableHeight ' ウィンドウが使うことのできる範囲の最大限の高さにする End With End Sub ブックを開いた時はシート名が見えないサイズになってしまうのですが もう一度手動でWorkbook_Openイベントを実行すると、ちゃんとシート名まで表示されます。 なぜ同じコードなのに結果が違うのでしょうか? 横幅に関しては1回目も2回目も同じです。

  • アプリケーション自体のサイズを設定したい エクセル

    エクセルでウインドウのサイズは、 Sub Macro1() With ActiveWindow .Top = 0 .Left = 0 .Width = 300 .Height = 300 End With End Sub で自分の好きな大きさにできますが、 アプリケーション自体のサイズを上記のように細かく指定するにはどうすればいいでしょうか? APIを使うのでしょうか? コードをご教授いただけますか?

  • オブジェクト名をVBAで指定する方法を教えてくださ

    VBAでワークシートにOLEObjectsのコマンドボタンを設置してるのですが ボタンのオブジェクト名をVBAで指定するにはどうすればいいでしょうか? Private Sub CommandButton1_Click() With ActiveSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.1", Link:=False, DisplayAsIcon:=False) .Object.Name = "ボタン1" .Object.Caption = "ボタン" .Object.Font.Size = 9 .Width = ActiveCell.Width .Height = ActiveCell.Height End With End Sub を実行すると、 .Object.Name = "ボタン1" の部分で 「オブジェクトは、このプロパティまたはメソッドをサポートしていません。(Error 438)」というエラーになります。 他のコードは大丈夫です。 オブジェクト名をVBAで指定する方法を教えてください。 当方エクセル2003です。

  • 実行時エラーについて

    Konkon_mと申します よろしくお願いします エクセルの質問なんですが、今回ワークシートから別のワークシートに表と数値を貼り付けるマクロを作成したのですが終了時に、『実行時エラー'1004' WorksheetクラスのPasteメソッドが失敗しました』のエラーがでるのです 一応、コピー&貼り付けはきちんと終了しているようなのですがすごく気になります 作成したマクロを載せますので、わかる方がいらっしゃいましたら教えていただけないでしょうか? 宜しくお願いします ChDir "H:\A\B" Workbooks.Open FileName:="\\PRO800\Home Directory\B\B\コピー.xls" ActiveWindow.WindowState = xlMinimized Range("B3:D10").Select Selection.Copy ActiveWindow.WindowState = xlMinimized ActiveWindow.WindowState = xlNormal ActiveWindow.WindowState = xlMinimized Windows("コピー.xls").Activate ActiveWindow.WindowState = xlNormal Range("B3").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Range("B3:D10").Select Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Range("A1").Select ActiveWorkbook.Save ActiveWindow.Close ActiveWindow.WindowState = xlNormal Range("B3").Select ActiveSheet.Paste Application.CutCopyMode = False Range("A3").Select ActiveWindow.WindowState = xlMaximized End Sub

  • エクセルのウインドウをど真ん中に表示したい

    Sub Macro2() Dim i As Long Dim j As Long i = Application.UsableHeight / 20 j = Application.UsableWidth / 40 With ActiveWindow .Top = i .Left = j End With With ActiveWindow .Height = i * 18 .Width = j * 38 End With End Sub これで、エクセルのアプリケーション内にウインドウを表示させたくて、 上下左右同じ長さの空白を入れたいのですが 左側の空白が多いです。 何故均等にならないのでしょうか?

  • ウインドウのサイズを最大化されない

    vb.netのフォームから、エクセルファイルを立ち上げた時に、 エクセル側で Private Sub Workbook_Open() ActiveWindow.WindowState = xlMaximized としてるのに、 ウインドウのサイズを最大化されないのですが、 どうしてでしょうか?

  • VBAで全画面/数式バーが出ない?

    エクセル2013です。 以下のVBAでFullscreenにすると、なぜか数式バーがでません。 これまでのエクセル2010では、このコードでちゃんと出ていました。 エクセル2013でも全画面表示で数式バーを出すためにはどうしたらよいのでしょうか? Sub FullSize() ActiveWindow.WindowState = xlMaximized With Application .WindowState = xlMaximized .DisplayFullScreen = True .DisplayFormulaBar = True '2013では数式バーが出ない! End With End Sub

  • xlNormalとは?

    VBA初心者です。 ActiveWindow.WindowState = xlNormal という記述がありますが、 xlNormalとはどういう意味なのでしょうか? xlMaximizedとxlMinimizedの意味はわかるのですが、 xlNormalの意味(定義)がわかりません。 どなたか詳しく教えてください。 よろしくお願い致します。

  • EXCEL2000でInitialize時にListBoxが希望する大きさにならない

    EXCEL2000 OSはWIN XPを使用しています。 マクロの処理途中でUserFormを表示させる際に大きさを指定したいのですが、ListBoxが希望通りの大きさにならない場合があります。以下のコードではダメなのでしょうか? ちなみに、エクセルを立ち上げ直後にマクロ実行した際にはほぼ100%の確立でListBoxは指定したサイズにならず、ディフォルトの大きさのままになり、逆に下記のようにMSGBOXを挿入すると確実に希望通りのサイズとなります。 いろいろ試しましたが、対処方法が分かりません。よろしくお願いします。 Private Sub UserForm_Initialize() 'MsgBox "これを入れるとListBox1は確実に希望の大きさになります" With UserForm1 .Top = 30 .Left = 10 .Width = ActiveWindow.Width - 30 .Height = ActiveWindow.Height .ListBox1.Top = 50 .ListBox1.Left = 15 .ListBox1.Width = .Width - 32 .ListBox1.Height = .Height - 85 End With End Sub

  • パワーポイントVBAでグラフのサイズ・位置を統一

    パワーポイントVBAに貼付けた複数のグラフサイズを統一したいと思っています。 1~20枚目のスライドに、それぞれ2つのグラフが貼付けてあります。 全てのグラフサイズ・位置を統一したいと思い、以下の様なVBAを書いてみました。 ---------- Sub 表サイズの統一() Dim myTop1, myLft1, myHgt1, myWdt1, cnt, i, myTop2, myLft2, myHgt2, myWdt2 With ActivePresentation.Slides(1).Shapes(1) myTop1 = .Top myLft1 = .Left myHgt1 = .Height myWdt1 = .Width End With With ActivePresentation.Slides(1).Shapes(2) myTop2 = .Top myLft2 = .Left myHgt2 = .Height myWdt2 = .Width End With cnt = ActivePresentation.Slides.Count For i = 2 To cnt With ActivePresentation.Slides(i).Shapes(1) .Top = myTop1 .Left = myLft1 .Height = myHgt1 .Width = myWdt1 End With Next For i = 2 To cnt With ActivePresentation.Slides(i).Shapes(2) .Top = myTop2 .Left = myLft2 .Height = myHgt2 .Width = myWdt2 End With Next End Sub ---------- 各スライドにある1つ目のグラフのサイズは統一出来たのですが、2枚目のグラフは何の変化もおきません。 どこが悪いのか、どなたかご教示頂ければ幸いです。 どうぞよろしくお願い致します。

専門家に質問してみよう