Excel VBA質問箱 IV

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

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


63709 / 76732 ←次へ | 前へ→

【17618】エクセルが応答しなくなってしまいます。
質問  YH  - 04/9/3(金) 14:01 -

引用なし
パスワード
   はじめまして。
早速ですが質問をさせていただきます。

今、FTPを使ってサーバーにファイルを送信するPGを作成しています。
ファイルに『送信ボタン』があり、
ボタンを押すと、裏で同じファイルを作成し送信するというものです。

問題は、一通りの処理終了後、エクセルと閉じようとすると応答しなくなってしまいます。
上書き保存などはできるのですが・・・。

調査の結果、どうやらInternetConnectのあたりがいけないようなのですが、
(InternetConnectの部分をコメント化すると問題なく閉じることができます)
コネクト後も間違いなくInternetCloseHandleを行っています。    
いったい何が問題なのでしょうか?
ご指導願います。

以下が、作成したPGです。

Function FtpPut(strFtpSvr As String, strUserID As String, strPassword As String, strRemoteFile As String, strLocalFile As String) As Boolean
  Dim hInternet As Long
  Dim hFTP As Long
  Dim lngret As Long
  Dim strErrText As String
  
  FtpPut = True

  On Error GoTo ErrHandler
'ネットにつなぐ準備
  hInternet = InternetOpen(vbNullString, _
                INTERNET_OPEN_TYPE_PRECONFIG, _
                vbNullString, _
                vbNullString, _
                0&)
  If hInternet = 0 Then
    strErrText = "InternetOpen:GetLastError=" & Err.LastDllError()
    MsgBox strErrText, vbOKOnly + vbExclamation, "<FtpPut>"
    FtpPut = False
    Exit Function
  End If
  
'ネットにつなぐ
  hFTP = InternetConnect(hInternet, _
               strFtpSvr, _
               INTERNET_DEFAULT_FTP_PORT, _
               strUserID, _
               strPassword, _
               INTERNET_SERVICE_FTP, _
               0&, _
               0&)

  If hFTP = 0 Then
    strErrText = "InternetConnect:GetLastError=" & Err.LastDllError()
    MsgBox strErrText, vbOKOnly + vbExclamation, "<FtpPut>"
    FtpPut = False
    InternetCloseHandle (hInternet)
    Exit Function
  End If

'ファイルを送る
  lngret = FtpPutFile(hFTP, _
             strLocalFile & vbNullChar, _
             strRemoteFile & vbNullChar, _
             FTP_TRANSFER_TYPE_BINARY, _
             0&)


  lngret = InternetCloseHandle(hFTP)
  lngret = InternetCloseHandle(hInternet)
  
  Exit Function
ErrHandler:
  FtpPut = False
  MsgBox "<" & Err & ">" & Error(Err), vbOKOnly + vbExclamation, "<FtpPut>"
End Function

------------------------------------------------------------------------------------
'API宣言
Public Declare Function InternetOpen Lib "WinInet.DLL" Alias "InternetOpenA" (ByVal lpszAgent As String, ByVal dwAccessType As Long, ByVal lpszProxyName As String, ByVal lpszProxyBypass As String, ByVal dwFlags As Long) As Long

Public Declare Function InternetConnect Lib "WinInet.DLL" Alias "InternetConnectA" (ByVal hInternetSession As Long, ByVal lpszServerName As String, ByVal nServerPort As Long, ByVal lpszUserName As String, ByVal lpszPassword As String, ByVal dwService As Long, ByVal dwFlags As Long, ByVal dwContext As Long) As Long

Public Declare Function FtpGetFile Lib "WinInet.DLL" Alias "FtpGetFileA" (ByVal hFtpSession As Long, ByVal lpszRemoteFile As String, ByVal lpszNewFile As String, ByVal fFailIfExists As Long, ByVal dwLocalFlagsAndAttributes As Long, ByVal dwInternetFlags As Long, ByVal dwContext As Long) As Long

Public Declare Function FtpPutFile Lib "WinInet.DLL" Alias "FtpPutFileA" (ByVal hFtpSession As Long, ByVal lpszLocalFile As String, ByVal lpszNewRemoteFile As String, ByVal dwFlags As Long, ByVal dwContext As Long) As Long

Public Declare Function InternetCloseHandle Lib "WinInet.DLL" (ByVal hInternetSession As Long) As Long

Public Declare Function InternetGetLastResponseInfo Lib "WinInet.DLL" Alias "InternetGetLastResponseInfoA" (lpdwError As Long, lpszBuffer As Byte, lpdwBufferLength As Long) As Long

1 hits

【17618】エクセルが応答しなくなってしまいます。 YH 04/9/3(金) 14:01 質問
【17697】Re:エクセルが応答しなくなってしまいます。 こもれび 04/9/5(日) 6:43 発言
【17709】Re:エクセルが応答しなくなってしまいます。 YH 04/9/6(月) 10:18 お礼
【17703】Re:エクセルが応答しなくなってしまいます。 禰宜 04/9/5(日) 23:54 回答
【17708】Re:エクセルが応答しなくなってしまいます。 YH 04/9/6(月) 10:17 お礼

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