
いつもお世話になります
今、UserFormからExcelシートのサイズが変更できなくて悩んでいます。
本来のプログラムはUserFormからInputBoxで最小にしてあるシートのデータを
参照するときにそのシートのサイズを最大にしたいのですが、上手くできません。
下記のサンプルプログラムは質問用に作りました。
UserForm1を呼び出す前にシートのサイズを最小にして、
UserFirm1で最大にしているだけですが、出来ていません
(Sample)
Declare PtrSafe Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As LongPtr
Declare PtrSafe Function ShowWindow Lib "user32" (ByVal hwnd As LongPtr, ByVal nCmdShow As Long) As Boolean
Declare PtrSafe Sub SetForegroundWindow Lib "user32" (ByVal hwnd As LongPtr)
Sub test()
'...ユーザフォームのクラス名を指定
FormClassName = "ThunderDFrame"
'...ウィンドウのハンドルを取得
hwnd = FindWindow(FormClassName, vbNullString)
'...表示(最小化されている場合は、これがないと表示状態になりません)
check = ShowWindow(hwnd, 3)
'...最前面表示
SetForegroundWindow hwnd
VBA.AppActivate Excel.Application.Caption
Application.WindowState = xlMinimized
UserForm1.Show
End Sub
(UserForm1)
Private Sub UserForm_Activate()
UserForm1.Top = 100
UserForm1.Left = 600
VBA.AppActivate Excel.Application.Caption
Application.WindowState = xlMaximized
End Sub
もし良い方法があれば教えてください
以上、よろしくお願い申しあげます
No.1ベストアンサー
- 回答日時:
こんばんは
状況がイマイチよくわかっていませんけれど・・・
>そのシートのサイズを最大にしたいのですが~~
シートと言うよりもエクセルのウィンドウ表示を最大化すれば良いのですよね?
APIを使っているようですが、VBAを記述してあるブックを最大化すれば良いのなら、
ThisWorkbook.Windows(1).WindowState = xlMaximized
だけでできませんか?
(当方の環境では、ウィンドウを最小化した状態からでも、上記で最大化表示できます)
いつもお世話になります
実はもう一つAutoCadの画面があって
AutoCadの画面の上にUserformが表示して、WorkSheetは最小表示に
しています
この時にInputBoxでWorksheetのデータを参照するとき、
WorkSheetを最大にしてWorkSheetをコントロールしたいと思っています
画面の順番は
①UserForm-AutoCad-Worksheet(最小)
(InputBox操作)
②UserForm-WorkSheet-AutoCad
になります
すみません、ながながと
ご教授頂いたステートメントで試してみます
まずはお礼まで
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelマクロのエラーを解決した...
-
Excel チェックボックスにチェ...
-
実行時エラー'1004': WorkSheet...
-
特定の文字を含むシートだけマ...
-
エクセルのシート名変更で重複...
-
【VBA】特定の文字で改行(次の...
-
エクセルVBA Ifでシート名が合...
-
ExcelVBA:複数の特定のグラフ...
-
【Excel VBA】Worksheets().Act...
-
ワークシートを追加したときの...
-
エクセルで通し番号を入れてチ...
-
Access エクセルシート名変更
-
マクロを使って、シート印刷完...
-
Excel VBA リンク先をシート...
-
XL:BeforeDoubleClickが動かない
-
Excel VBA 大量のレコードから...
-
VBA ユーザーフォーム上のチェ...
-
実行時エラー1004「Select メソ...
-
PerlでExcelのワークシートを同...
-
EXCELVBAを使ってシートを一定...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelマクロのエラーを解決した...
-
excelのマクロで該当処理できな...
-
特定の文字を含むシートだけマ...
-
実行時エラー'1004': WorkSheet...
-
ユーザーフォームに入力したデ...
-
【ExcelVBA】全シートのセルの...
-
エクセルVBA Ifでシート名が合...
-
実行時エラー1004「Select メソ...
-
VBA 存在しないシートを選...
-
エクセルで通し番号を入れてチ...
-
VBA 検索して一致したセル...
-
XL:BeforeDoubleClickが動かない
-
VBA 指定した回数分、別シート...
-
VBAマクロでシートコピーした新...
-
シートが保護されている状態で...
-
ブック名、シート名を他のモジ...
-
【VBA】全ての複数シートから指...
-
別のシートから値を取得するとき
-
ExcelのVBAのマクロで他のシー...
-
Excel チェックボックスにチェ...
おすすめ情報