Access VBA質問箱 IV

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

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


891 / 2272 ツリー ←次へ | 前へ→

【9626】DDE通信でのエラー ボビー 07/6/28(木) 10:28 質問[未読]
【9638】Re:DDE通信でのエラー YU-TANG 07/7/1(日) 17:30 回答[未読]
【9642】Re:DDE通信でのエラー ボビー 07/7/2(月) 15:30 お礼[未読]

【9626】DDE通信でのエラー
質問  ボビー  - 07/6/28(木) 10:28 -

引用なし
パスワード
   以下のようなコマンドで、DDE通信を使用しAuto_Openマクロのある[市場技術情報.xls]を起動しています。
この[市場技術情報.xls]では、UserFormを起動させ必要項目を入力させているのですが、30秒???くらいUserFormを表示させておくと以下のようなエラーが出力されます。

[Cmd市技情報_Click]にてエラー発生
エラー番号=[286]
メッセージ=[アプリケーションまたはオブジェクトで定義されているエラー]

もしかすると、DDE通信でのタイムアウトなのでしょうか?
メッセージの[OK]を押せば、処理としてはAccessもExcelも問題ありません。
ただ、このメッセージを出さないようには出来ないのでしょうか?
宜しくご教授願います。(長文になり申し訳ありません)
環境:WinXP、Access95、Excel2000

Private Sub Cmd市技情報_Click()
  Const ProcName = "[Cmd市技情報_Click]"
  On Error GoTo Err_Cmd市技情報_Click

  Dim MyWK        As Workspace
  Dim MyDB        As DATABASE
  Dim MyRS        As Recordset
  Dim MyChan       As Long     '** チャネル番号
  Dim strExcelPath    As String    '** ExcelのフルPath
  Dim strFilePath     As String    '** OpenBookのフルPath

  Set MyDB = CurrentDb()
  DoCmd.TransferText acExportDelim, , "Q_Query1", "C:\Test\Export.csv", True

  strExcelPath = "C:\Program Files\Microsoft Office\Office\EXCEL.EXE"
  strFilePath = "C:\\Format\HONBAN\市場技術情報.xls"

  Shell strExcelPath, 1                 'Excel2000の起動
  MyChan = DDEInitiate("Excel", "System")        'DDE通信の開始
  DDEExecute MyChan, "[Open(""" & strFilePath & """)]" 'ExcelのOpen
  DDETerminate MyChan                  'DDE通信の終了

Exit_Cmd市技情報_Click:
  On Error Resume Next
  MyRS.Close: Set MyRS = Nothing
  MyDB.Close: Set MyDB = Nothing
  On Error GoTo 0
  Exit Sub
Err_Cmd市技情報_Click:
  MsgBox Me.Name & ProcName & "にてエラー発生" & Chr(13) & Chr(10) _
  & "エラー番号=[" & Err.Number & "]" & Chr(13) & Chr(10) _
  & "メッセージ=[" & Err.Description & "]"
  Resume Exit_Cmd市技情報_Click
End Sub

【9638】Re:DDE通信でのエラー
回答  YU-TANG  - 07/7/1(日) 17:30 -

引用なし
パスワード
   まあ、どうでもいいことかもしれませんが。

>  Dim MyWK        As Workspace
>  Dim MyDB        As DATABASE
>  Dim MyRS        As Recordset

これは何のための宣言なのでしょうか。

> strExcelPath = "C:\Program Files\Microsoft Office\Office\EXCEL.EXE"
> strFilePath = "C:\\Format\HONBAN\市場技術情報.xls"

「C:」の後の「\」の数が一致してませんが、どのような意図なので
しょうか。


で、本題ですが、起動するだけなら DDE を使う必要がないような気も
します。

Shell """" & strExcelPath & """ """ & strFilePath & """", vbNormalFocus

エラー回避が目的であれば、上記で達成できるかもしれません。
それでは。

【9642】Re:DDE通信でのエラー
お礼  ボビー  - 07/7/2(月) 15:30 -

引用なし
パスワード
   ▼YU-TANG さん:
ありがとうございます。
試してみたいと思います。

>まあ、どうでもいいことかもしれませんが。
>>  Dim MyWK        As Workspace
>>  Dim MyDB        As DATABASE
>>  Dim MyRS        As Recordset
>これは何のための宣言なのでしょうか。
 →直接、質問の処理には関係ない、どうでもいい宣言です。
  無視して下さって結構です。

>> strExcelPath = "C:\Program Files\Microsoft Office\Office\EXCEL.EXE"
>> strFilePath = "C:\\Format\HONBAN\市場技術情報.xls"
>「C:」の後の「\」の数が一致してませんが、どのような意図なので
>しょうか。
 →特別な意図も意味も何もありません。ただの転記ミスです。

>で、本題ですが、起動するだけなら DDE を使う必要がないような気も
>します。
>
>Shell """" & strExcelPath & """ """ & strFilePath & """", vbNormalFocus
>エラー回避が目的であれば、上記で達成できるかもしれません。
>それでは。

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