• 締切済み

Excel VBA Window の設定

cj_moverの回答

  • cj_mover
  • ベストアンサー率76% (292/381)
回答No.2

こんにちは。 ExcelのApplicationウィンドウのサイズ指定、という理解でいます。 残念ながらApplicationのウィンドウを固定する直接的な方法は用意されていませんので、 以下のサンプルを応用するのが直接的な解決策に当たるかと思います。 ' ' /// Applicationウィンドウの表示サイズ指定 Sub Re8441362() 1  With Application 2    .WindowState = xlNormal 3    .Top = 100  '  不要なら当行削除 4    .Left = 150   '  不要なら当行削除 5    .Height = 300 6    .Width = 500 7  End With End Sub ' ' /// Applicationウィンドウの最大化 Sub AppWnd最大化() 8  Application.WindowState = xlMaximized End Sub ' ' /// Applicationウィンドウの標準化 Sub AppWnd指定サイズ化() 9  Application.WindowState = xlNormal End Sub ' ' 1 With ステートメントでApplicationオブジェクトをブロック化 ' ' 2 Applicationのウィンドウサイズを標準化(最大化及び最小化を解除) ' ' 3 Applicationウィンドウのトップ座標を指定 ' ' 4 Applicationウィンドウのレフト座標を指定 ' ' 5 Applicationウィンドウの高さを指定 ' ' 6 Applicationウィンドウの幅を指定 ' ' 7 With ステートメントを閉じる ' ' 8 Applicationのウィンドウサイズを最大化 ' ' 9 Applicationのウィンドウサイズを標準化(最大化及び最小化を解除) ' '   最後に設定した.Top.Left.Height.Widthが踏襲される ' ' 行ラベル「1-9」は解説の為のもの。実践では不要。 ' ' まず、Sub Re8441362()を実行してApplicationウィンドウ各プロパティを設定。 ' ' Sub AppWnd最大化()はApplicationウィンドウを最大化するもの。 ' ' 上記の順に実行後はSub AppWnd指定サイズ化()で指定のウィンドウ状態に戻す。 /// "任意のサイズに固定したい"の"固定"という言葉に込められた意味が 序の場合は一意ではありませんが、 例えば、 「Excel(またはBook)を開く度に指定のウィンドウサイズで開きたい」 とか 「Excel(またはBook)を最後に設定したウィンドウサイズで開きたい」 等の場合は、それぞれ目的に適したイベントプロシージャから、 上記のサンプル(または同等の処理)を実行するように応用することになります。 そちらで難しいようでしたら補足してみてください。 条件が詳らかなら一度は追加にお応えします。 以上です。

noname#193651
質問者

お礼

迅速な対応有り難うございます。 一つ一つ詳細まで記載して頂き有り難うございます。 言葉足らずで質問してしまいましたが、私が「やりたい」と思っていた事と一致し大変わかりやすかったです。 補足は間違いです...

noname#193651
質問者

補足

迅速な対応有り難うございます。 一つ一つ詳細まで記載して頂き有り難うございます。 言葉足らずで質問してしまいましたが、私が「やりたい」と思っていた事と一致し大変わかりやすかったです。

関連するQ&A

  • Excel VBA ファイルをまとめる

    Excel2003にてフォルダにある複数ファイル(8個)の各1番左のシートを 指定したファイルにまとめるVBAを組みたいと思います。 まとめる際、ファイル名の一部を取得し、シート名にしたいのですが可能でしょうか? 例: ファイル名:20110927_△△△△株式会社.xls ⇒ シート名:△△△△株式会社 ※ファイルの個数は固定ですが、年月の部分は変わります。 簡単なVBAの経験しかなく、キーワード検索でもしっくりこないものばかりで どのようにコードを記述してよいのか非常に困っています。

  • 自分のExcelを読み取り専用で開くVBAは?

    Excel2003を使っています。 基本的なことで恐縮なのですが、 Excelファイルを手動で開くとき、読み取り専用にするような方法はないでしょうか。 ファイルのプロパティから「読み取り専用」にチェックを入れても NASの性質なのか、チェックが外れてしまいます。 (前提として、ここの変更は考えていません) そこで、「読み取り専用を推奨する」にしたのですが、毎回メッセージボックスが出るため 「読み取り専用にしない」を選択される場合もあります。 そのため、VBAにその指示を書き込む方法を探していました。 たとえば、以下のコードを試してみました。 しかし、開いたファイルに指示しているため、当然ながら以下のメッセージが出ます。 "***.xls は既に開いています。2重に開くと、これまでの変更内容は破棄されます。***.xls を開きますか?" Private Sub Workbook_Open() Dim Filename As String Filename = ThisWorkbook.FullName With Workbooks.Open(Filename, , True) .ActiveSheet.Activate End With End Sub 「読み取り専用を推奨する」をオンにして、Workbook.Openの引数である ignorereadonlyrecommended を設定する…というのも、 やはり上記の点で引っかかります。 何か方法はないものでしょうか。。。

  • Excel97のVBAでコモンダイアログを使いたい

    現在Excel97で二つのテキストデータベース(固定長形式)を読み込み、解析を行おうとしています。 現在、べたに二つのファイルのパスをコードに書き込めばファイルの読み込みも上手くいくのですが、やはりここは出来るならばファイル指定を汎用のダイアログで行えるようにしたいと思いあれこれ方法を探しています。 そこで読み込みたい二つのファイルのパスを、VBで利用できるCommonDialogで取得出来るなら、一からファイル選択用フォームを作成しなくても済むので楽になると思いついたのですが、Excel97のVBAでの転用がうまくいかなくて企画倒れの状態になっています。 参照設定でComCtrl32.OCXを読み込めればと思い試験してみたもののうまくいかず、次の方法が見つからずに途方に暮れています。 もしかしてVBAではコモンダイアログは利用できないのでしょうか?

  • エクセル VBAについて

    初心者ですが、指導してください。 エクセルでVBA・マクロを使用して見積書を作っています。 AファイルとBファイルを順番に開いた状態で使用します。 Bファイルは見積書のテンプレートファイルになっています。 Bファイルで担当者が新しく見積書を作った場合、 ファイル保存というボタンで、指定のホルダ内に任意のファイル名で保存する事が可能になっています。 新しく保存したファイルをCファイルとします。 Cファイルを修正等する場合は、AファイルからCファイルを読み込みます。 Aファイルは、トップページ兼価格リスト表になっています。 ここで問題というか分からなくなっている部分は、 テンプレートファイルであるBファイルの時は、VBAの記述の際に、 Windows("B.xls").Activate と記載していますが、 任意のファイルであるCファイルの時は、 担当者によって、任意のファイル名で保存されているため ファイル名の取得?が必要になると思います。 その場合、どの様な記述をすればいいのでしょうか? なかなか上手に説明できませんが、よろしくお願いします。

  • Excel VBA の基本画面にて

    昨日、コードウィンドウやプロジェクトエクスプローラ、プロパティウィンドウを 間違えて非表示にしてしまい、再表示して新たに勉強しているのですが 最初の固定画面にならず、何度も画面を操作しなければなりません。 元の画面を固定する方法はありませんでしょうか? (元の画面:参考に添付します) 経験者の方々、知識のある方 ご意見、アドバイス等を宜しくお願いします。 余談ですが コードを記入しては、 保存せずに再度EXCEL開いてはコードを入力する暗記方法で勉強しています。

  • Excel VBAでのSaveCopyAsの挙動

    Excel 2016/2019を使っています。よろしくお願いします。 ブックに変更があった場合にバックアップを保存したいので、 上書きにならないように日付と連番をつけてバックアップ専用フォルダにSaveCopyAsを使って保存しようとしています。 明示的に「保存」アイコンをクリックすると期待通りの動作が行われます。しかし、保存せずに「x」印をクリックして閉じてしまった場合でも、変更があるならバックアップファイルを作りたいのですが、SaveCopyAsを通っているのにバックアップファイルが作成されません。 記載したコードは以下のとおりです。 ThisWorkbookオブジェクトに対して、 Public Sub Workbook_beforeClose(Cancel As Boolean) '変更があれば(ThisWorkBookを)保存 If ThisWorkBook.Saved = False Then ThisWorkBook.Save End If End Sub 'ThisWorkBookの保存時にバックアップを作成 Private Sub Workbook_BeforeSave(省略) If ThisWorkbook.Saved = False Then 'バックアップファイルのフルパスを作成  ThisWorkbook.SaveCopyAs "バックアップファイルフルパス" End Sub 何かヒントをお持ちの方みえられましたらご教示いただければ幸いです。

  • Excel VBA 終了時の処理

    Excelを終了時にフルスクリーン(リボンなどが非表示の状態)から解除するコードを書きたいのです。 Private Sub Workbook_BeforeClose(Cancel As Boolean) Application.DisplayFullScreen = False 'フルスクリーン化解除 End Sub というコードを書きましたが、Excel自体を×ボタンでクローズした場合は正常に動きますが、 Excelを起動したままPCをシャットダウンすると解除されません。 次回Excelファイルを開くときにはフルスクリーンで出てきてしまいます。 シャットダウン時には、Excelも勝手にクローズされ、その際にマクロが動くものだと思っていましたが... これを回避するコードなどありましたらご教授ください。 環境:windows7 Excel2010 (2013でも動くようにしたいです)

  • VBA PDFファイルの一部分を切り出すコード

    Excel VBAでPDFファイルを読み込んで、 その一部分を切り出す (A4サイズの右上の番号の部分(約1.5cmx10cm)のみにする) VBAコード、またはAPIはないでしょうか。 よろしくお願いします。(Windows10,Excel2016)

  • Excel VBAにて「任意のエクセルファイルが使用中か確認したい」

    お世話になります。 任意のエクセルファイルが使用中かどうか?判断し、 使用中の場合は強制終了させる どのようにコーディングすればよいでしょうか? ※任意のファイル名というのは、  現在の年月日により変動するので固定させずにパラメータとしています よろしくお願いします。

  • VBAについて質問です。

    VBAについて質問です。 現在、ExcelにてWorkbookを自動で作成するモジュールを作成しています。 モジュールを記載しているWorkbookを [wbSorce] 自動で作成されるWorkbookを [wbNew] とします。 [wbSorce] でモジュールを実行すると、 [wbNew] を新規に作成し、 データを入力して保存するのですが、保存する際に [wbNew] のイベントハンドラ [Workbook_Open] に 保存された [wbNew] を開いた時の挙動を記載するには どうすればよいでしょうか? サンプルは下記になります。 ****[wbSorce]のモジュール**** Sub wbNew_Sakusei()   Dim wb As Workbook   Dim wb2 As Workbook   Dim i As Integer   Set wb = ThisWorkbook   Set wb2 = Workbooks.Add   For i = 1 To 5     wb2.Sheets(1).Cells(1, i) = wb.Sheets(1).Cells(1, i)   Next   wb2.SaveAs Filename:="wbNew" End Sub ****[wbNew]に記述したいモジュール**** Private Sub Workbook_Open()   ActiveWindow.ScrollRow = 1   MsgBox "Workbook_Openイベントが発生しました。" End Sub