Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


4442 / 13644 ツリー ←次へ | 前へ→

【56650】フォルダーの最小化 とき 08/6/27(金) 6:13 質問[未読]
【56652】Re:フォルダーの最小化 mizunu 08/6/27(金) 13:02 回答[未読]
【56658】Re:フォルダーの最小化 とき 08/6/27(金) 21:10 お礼[未読]
【56653】Re:フォルダーの最小化 熊谷隆史 08/6/27(金) 13:26 回答[未読]
【56659】Re:フォルダーの最小化 とき 08/6/27(金) 21:14 お礼[未読]

【56650】フォルダーの最小化
質問  とき  - 08/6/27(金) 6:13 -

引用なし
パスワード
   フォルダーの最小化について質問します。EXcel VBAでフォルダーを最小化することは
できるでしょうか。
例えば、デスクトップに「VBA」というフォルダーがあり、そのフォルダー内にVBAファイル
があります。そのVBAで、「VBA」というフォルダーを最小化、戻しは可能でしょうか。

【56652】Re:フォルダーの最小化
回答  mizunu  - 08/6/27(金) 13:02 -

引用なし
パスワード
   >「VBA」というフォルダーを最小化、戻しは可能でしょうか。

APIになりますが、以下のように簡単です。
が、なぜフォルダーの最小化、戻しをマクロでやる必要があるのでしょうか?
そのへんを説明されると、根本的にもっと良い方法を示してもらえるかもしれません。

'標準モジュール
Option Explicit
Private Declare Function ShowWindow Lib "user32" _
 (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
 (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function IsIconic Lib "user32" (ByVal hwnd As Long) As Long
Const SW_SHOWMINIMIZED = 2
Const SW_RESTORE = 9

'フォルダーを最小化/元に戻す
Sub test_FolderMinizedRestore()
 Dim hwnd&, folder$
 folder = "VBA" 'vbNullString 'ファルダー名
 hwnd = FindWindow("CabinetWClass", folder)
 If hwnd = 0 Then hwnd = FindWindow("ExploreWClass", folder)
 If hwnd Then
  ShowWindow hwnd, IIf(IsIconic(hwnd), SW_RESTORE, SW_SHOWMINIMIZED)
 Else 'Debug用
  MsgBox "フォルダー'" & folder & "'は開いていない"
 End If
End Sub

【56653】Re:フォルダーの最小化
回答  熊谷隆史  - 08/6/27(金) 13:26 -

引用なし
パスワード
   ▼とき さん:
多分、こんな感じ(XPなら)。

Option Explicit
Private Declare Function ShowWindow Lib "user32" ( _
    ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
Const SW_MINIMIZE = 6
Const SW_RESTORE = 9

Sub test()
  Dim IE As Object
  For Each IE In CreateObject("Shell.Application").Windows()
    If TypeName(IE.document) = "IShellFolderViewDual2" Then
      If IE.LocationURL Like "*VBA" Then
        ShowWindow IE.hwnd, SW_MINIMIZE '最小化
      End If
    End If
  Next
End Sub

【56658】Re:フォルダーの最小化
お礼  とき  - 08/6/27(金) 21:10 -

引用なし
パスワード
   ありがとうございました。
参考にさせていただきます。

【56659】Re:フォルダーの最小化
お礼  とき  - 08/6/27(金) 21:14 -

引用なし
パスワード
   回答ありがとうございました。正常に動作しました。
参考にさせていただきます。

4442 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free