Excel VBA質問箱 IV

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

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


1874 / 13645 ツリー ←次へ | 前へ→

【71319】exeファイルの解凍について ヨシ 12/2/21(火) 11:35 質問[未読]
【71320】Re:exeファイルの解凍について とおりすぎ 12/2/21(火) 11:44 回答[未読]
【71321】Re:exeファイルの解凍について ヨシ 12/2/21(火) 12:00 お礼[未読]
【71328】Re:exeファイルの解凍について とおりすぎ 12/2/21(火) 14:02 回答[未読]
【71329】Re:exeファイルの解凍について ヨシ 12/2/21(火) 14:10 お礼[未読]
【71330】Re:exeファイルの解凍について ヨシ 12/2/21(火) 14:14 発言[未読]
【71331】Re:exeファイルの解凍について 774 12/2/21(火) 17:27 回答[未読]
【71332】Re:exeファイルの解凍について ヨシ 12/2/21(火) 17:39 発言[未読]
【71334】Re:exeファイルの解凍について ヨシ 12/2/22(水) 10:36 質問[未読]
【71335】Re:exeファイルの解凍について とおりすぎ 12/2/22(水) 11:25 回答[未読]
【71336】Re:exeファイルの解凍について ヨシ 12/2/22(水) 13:24 質問[未読]
【71337】Re:exeファイルの解凍について とおりすぎ 12/2/22(水) 13:40 回答[未読]
【71338】Re:exeファイルの解凍について ヨシ 12/2/22(水) 14:01 お礼[未読]

【71319】exeファイルの解凍について
質問  ヨシ  - 12/2/21(火) 11:35 -

引用なし
パスワード
    ヨシと申します。以前は、XLS形式で抽出されていたDATAがシステムリニューアルでなぜかWinSFX32U Self Extractor for Win32のexe形式で抽出されることになり困っています。
以前は抽出されたxls形式のFILEをエクセルに読み込み操作していましたが圧縮ファイルを解凍する作業が間に入りますので解凍作業をなんとかVBAで処理できないかと思っています。以下のShellでWinSFX32Uのメッセージが表示され、OKを押し同じファイルが存在するので上書きするでOKをしなければなりません。このOKをクリックする作業をなくしたいのですが。。。上書きするファイルが存在し決まったフォルダへの解凍作業です。ご伝授下さい。よろしくお願いいたします。

Sub テスト()
  Shell ("\\Ls-wtgl469\共通file\特養利用状況.exe \\Ls-wtgl469\共通file\")
End Sub

【71320】Re:exeファイルの解凍について
回答  とおりすぎ  - 12/2/21(火) 11:44 -

引用なし
パスワード
   解凍前にファイルをKillステートメントなどで削除しておけばいいのでは。

【71321】Re:exeファイルの解凍について
お礼  ヨシ  - 12/2/21(火) 12:00 -

引用なし
パスワード
   とおりすぎ さん 早々のご回答ありがとうございます!
Killステートメント遣わさせていただきます。
WinSFX32Uのメッセージボックスも非表示にさせたいのですが。。。

>解凍前にファイルをKillステートメントなどで削除しておけばいいのでは。

【71328】Re:exeファイルの解凍について
回答  とおりすぎ  - 12/2/21(火) 14:02 -

引用なし
パスワード
   自動解凍書庫を作成するときにダイアログの表示・非表示は設定する。
作られた書庫に対しての方法は、私は知らんので、他の識者に期待して。

【71329】Re:exeファイルの解凍について
お礼  ヨシ  - 12/2/21(火) 14:10 -

引用なし
パスワード
   とおりすぎさん、ありがとうございました!

【71330】Re:exeファイルの解凍について
発言  ヨシ  - 12/2/21(火) 14:14 -

引用なし
パスワード
   識者に期待します。よろしくお願いいたします↑

【71331】Re:exeファイルの解凍について
回答  774  - 12/2/21(火) 17:27 -

引用なし
パスワード
   LHA形式なら普通に解凍すれば良いんじゃないの?

h t t p://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/vb_t23.htm

【71332】Re:exeファイルの解凍について
発言  ヨシ  - 12/2/21(火) 17:39 -

引用なし
パスワード
   ▼774 さん:
>LHA形式なら普通に解凍すれば良いんじゃないの?
>
>h t t p://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/vb_t23.htm

774さん、ありがとうございます!明日試してみます!まずはお礼まで

【71334】Re:exeファイルの解凍について
質問  ヨシ  - 12/2/22(水) 10:36 -

引用なし
パスワード
   ▼774 さん:
>LHA形式なら普通に解凍すれば良いんじゃないの?
>
>h t t p://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/vb_t23.htm

以下のVBAを実行させると、Unlhaがsub又はfunctionが定義されたいませんのエラーが発生します。誠に申し訳ございませんお教えください。

Sub テスト2()
'  Kill ("\\Ls-wtgl469\共通file\特養入居状況.xls")
 If LHA(Hwnd, "x \\Ls-wtgl469\共通file\特養入居状況.exe \\Ls-wtgl469\共通file\") = False Then
  MsgBox "LHA ディリクトリ付解凍エラー"
 End If

 If LHA(Hwnd, "e -c -m \\Ls-wtgl469\共通file\特養入居状況.exe \\Ls-wtgl469\共通file\") = False Then
  MsgBox "LHA 上書き解凍エラー"
 End If

 If LHA(Hwnd, "x -c \\Ls-wtgl469\共通file\特養入居状況.exe \\Ls-wtgl469\共通file\") = False Then
  MsgBox "LHA 上書きディリクトリ付解凍エラー"
 End If
End Sub
'** Unlha32 API 定義
' Public Declare Function Unlha Lib "unlha32" (ByVal hWindows As Long, ByVal CmdLine As String, ByVal Console As String, ByVal size As Long) As Long

'=======================================================================
' LHA 圧縮解凍
'=======================================================================
'【引数】
' hwd   = ウィンドウハンドル
' para  = LHA パラメタ
'【戻り値】
' boolean = 処理結果
'       TRUE = 正常終了
'       FALSE = 異常終了
'【処理】
' ・LHA パラメタに従って、LZH の圧縮解凍を行う。
' ・圧縮パラメタ "a g:\tmp\test.lzh g:\tmp\ *.sf"
'         | |        |    |_ 対象ファイル指定
'         | |        |_ ファイルのあるパス
'         | |_ 圧縮先パス、ファイル名
'         |_ 圧縮指定
' ・解凍パラメタ "e g:\tmp\test.lzh g:\tmp\"
'         | |        |_ 解凍先パス
'         | |_ 対象パス、LZH ファイル名
'         |_ 解凍指定
'=======================================================================
Public Function LHA(hwd As Variant, para As String) As Boolean

 Dim rcd As Long
 Dim cons As String

'** LHA 圧縮解凍
 cons = Space(256)
 rcd = Unlha(hwd, para, cons, LenB(cons))
 If rcd <> 0 Then
  LHA = False
 Else
  LHA = True
 End If

End Function

【71335】Re:exeファイルの解凍について
回答  とおりすぎ  - 12/2/22(水) 11:25 -

引用なし
パスワード
   '** Unlha32 API 定義
' Public Declare Function Unlha Lib "unlha32" (ByVal hWindows As Long, ByVal CmdLine As String, ByVal Console As String, ByVal size As Long) As Long

これを、コメント外して、モジュールの先頭に記述。

UNLHA32.DLLがsystem32フォルダなどpathが通っているところにあること。
あるいは、"unlha32" をFullNameで記述する。

【71336】Re:exeファイルの解凍について
質問  ヨシ  - 12/2/22(水) 13:24 -

引用なし
パスワード
   ▼とおりすぎ さん:ありがとうございます
>'** Unlha32 API 定義
>' Public Declare Function Unlha Lib "unlha32" (ByVal hWindows As Long, ByVal CmdLine As String, ByVal Console As String, ByVal size As Long) As Long
>
>これを、コメント外して、モジュールの先頭に記述。
>
>UNLHA32.DLLがsystem32フォルダなどpathが通っているところにあること。
>あるいは、"unlha32" をFullNameで記述する。

以下を実行させると「End Sub,End FunctionまたはEnd Property 以降には、コメントのみが記述できます。」のコンパイルエラーが表示されました。
ご教授下さい。

Sub テスト2()
'** Unlha32 API 定義
 Public Declare Function Unlha Lib "unlha32" (ByVal hWindows As Long,  ByVal CmdLine As String, ByVal Console As String, ByVal size As Long) As Long

'  Kill ("\\Ls-wtgl469\共通file\特養入居状況.xls")
 If LHA(Hwnd, "x \\Ls-wtgl469\共通file\特養入居状況.exe \\Ls-wtgl469\共通file\") = False Then
  MsgBox "LHA ディリクトリ付解凍エラー"
 End If

 If LHA(Hwnd, "e -c -m \\Ls-wtgl469\共通file\特養入居状況.exe \\Ls-wtgl469\共通file\") = False Then
  MsgBox "LHA 上書き解凍エラー"
 End If

 If LHA(Hwnd, "x -c \\Ls-wtgl469\共通file\特養入居状況.exe \\Ls-wtgl469\共通file\") = False Then
  MsgBox "LHA 上書きディリクトリ付解凍エラー"
 End If
End Sub

'=======================================================================
' LHA 圧縮解凍
'=======================================================================
'【引数】
' hwd   = ウィンドウハンドル
' para  = LHA パラメタ
'【戻り値】
' boolean = 処理結果
'       TRUE = 正常終了
'       FALSE = 異常終了
'【処理】
' ・LHA パラメタに従って、LZH の圧縮解凍を行う。
' ・圧縮パラメタ "a g:\tmp\test.lzh g:\tmp\ *.sf"
'         | |        |    |_ 対象ファイル指定
'         | |        |_ ファイルのあるパス
'         | |_ 圧縮先パス、ファイル名
'         |_ 圧縮指定
' ・解凍パラメタ "e g:\tmp\test.lzh g:\tmp\"
'         | |        |_ 解凍先パス
'         | |_ 対象パス、LZH ファイル名
'         |_ 解凍指定
'=======================================================================
Public Function LHA(hwd As Variant, para As String) As Boolean

 Dim rcd As Long
 Dim cons As String

'** LHA 圧縮解凍
 cons = Space(256)
 rcd = Unlha(hwd, para, cons, LenB(cons))
 If rcd <> 0 Then
  LHA = False
 Else
  LHA = True
 End If

End Function

【71337】Re:exeファイルの解凍について
回答  とおりすぎ  - 12/2/22(水) 13:40 -

引用なし
パスワード
   モジュールの先頭。プロシージャの先頭ではない。
Option Explicit、Option Base 1、Option CompareやOption Privateの下。
上記が無ければ、一番上。

【71338】Re:exeファイルの解凍について
お礼  ヨシ  - 12/2/22(水) 14:01 -

引用なし
パスワード
   とおりすぎ様!774様

 お付き合いいただき誠にありがとうございました!
 無事にFILEを解凍することができました!感動です! 涙・涙!

 誠にありがとうございました!

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