• 締切済み

ファイルを閉じる

お願いします デスクトップ上にフォルダがあります。 フォルダの中に3つのファイルがあります。 3つのファイルの中に、各々Excelのシートがあります。 現在は、【Excelを閉じる】 Application.Quit これを実行すると、Excelを閉じることができますが フォルダは開いたままで、3つのファイルが表示されている状態に なっています。 このフォルダも閉じて、デスクトップ上にフォルダの アイコンのみ、表示された状態にする方法をお教えください。

みんなの回答

  • Hardking
  • ベストアンサー率45% (73/160)
回答No.2

私が記したサンプルプログラムは、C言語ではなく VBです。(VB6.0 SP6) サンプルプログラムの実行動作確認は完了してますので 後は、サンプルプログラムのフォルダー名『ABC』を そちらの環境のフォルダー名に変更するだけです。

  • Hardking
  • ベストアンサー率45% (73/160)
回答No.1

Win32APIを使用します。 1.デスクトップ上のフォルダーのフルパス名を取得する。 2.フルパス名でウィンドウハンドルを取得。(FindWindow) 3.ウィンドウを閉じる。(PostMessage) 例.デスクトップ上のフォルダー『ABC』を閉じる場合 Option Explicit 'API宣言 Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _ (ByVal lpClassName As String, _ ByVal lpWindowName As String) As Long Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" _ (ByVal hwnd As Long, _ ByVal wMsg As Long, _ ByVal wParam As Long, _ ByVal lParam As Long) As Long '処理部 Const WM_CLOSE = 16 Dim MyWSShell As Object Dim MyDesktopFolder As String Dim hWin As Long Dim lngRet As Long Set MyWSShell = CreateObject("WScript.Shell") MyDesktopFolder = MyWSShell.SpecialFolders("Desktop") & "\ABC" Set MyWSShell = Nothing 'フルパス名でウィンドウハンドル取得 hWin = FindWindow(vbNullString, MyDesktop) If hWin = 0 Then lngRet = MsgBox("ウィンドウが存在しません", vbExclamation + vbOKOnly) Exit Sub End If 'クローズ命令 PostMessage hWin, WM_CLOSE, 0, 0

1211M
質問者

お礼

Hardkingさん ありがとうございました。 私には、C言語はまったくわかりません。 せっかくお教えいただいたのにすみません。 これで終了させていただきます。

関連するQ&A