Microsoft Access Club >VBAのTips解説 >このページ >次頁 < 前項  サイト内検索
 

DDERequest関数を用いてExcelファイルからデータを引き出す方法 : VBAのTips解説



DDERequest関数

DDERequest関数とは、開いているDDEチャネルを使って、サーバーアプリケーションの情報を取得する関数です。例えば、AccessとExcelの間でDDEチャネルが開かれている場合は、DDERequest関数を使って、ExcelのテキストデータをAccess側から求めることができます。この時、Accessがクライアントアプリケーション、Excelがサーバーアプリケーションの関係になります。サンプルファイルをご利用の場合、OSやExcelのバージョンの違いによりExcelのインストール先フォルダーが異なります。ご自分の環境に書き換えて下さい。また、事前にExcelファイル「C:\予約管理簿.xls」を作成して下さい。

  • 書式
DDERequest(channum, item)
  • 引数
引数 意味 指定
ChanNum DDE通信を行う固有のチャンネル番号を指定します。この番号は、DDEInitiateメソッドを利用してDDE通信が確立されると自動的に割り振られます 省略不可
Item 定められたデータアイテムを指定(ここでは、Excelのセル)します 省略不可

関連項目

  1. Shell関数
  2. DDEInitiateメソッド
  3. DDEExecuteメソッド

事例 ) Excelファイルと通信し、Excelファイルからデータを引き出す

Excelファイルと通信し、Excelファイルからデータを引き出します。

  1. 非連結フォームを作成します。
  2. 実行するコマンドボタンを作成します。

コマンドボタンクリック時イベントプロシージャの作成

コマンドボタンクリック時イベントプロシージャを以下のように作成します。

Private Sub 実行_Click()

   On Error GoTo エラー

   Dim MyChan As Long
   Dim strExcelPath As String
   Dim strFilePath As String
   Dim strMsg As String
   Dim i As Integer
   Dim Retval(5) As Variant

   strExcelPath = "C:\Program Files\Microsoft Office\OFFICE11\EXCEL.EXE"
   strFilePath = "C:\予約管理簿.xls"

   Shell strExcelPath, 1
   MyChan = DDEInitiate("Excel", "System")

   DDEExecute MyChan, "[open(""" & strFilePath & """)]"
   MyChan = DDEInitiate("Excel", "Sheet1") '--- A

   For i = 1 To 5 '--- B
      Retval(i) = "・" & DDERequest(MyChan, "R" & i & "C1")
      Retval(i) = Retval(i) & DDERequest(MyChan, "R" & i & "C2")
      Retval(i) = Retval(i) & DDERequest(MyChan, "R" & i & "C3")
      strMsg = strMsg & vbNewLine & Retval(i)
   Next

   MsgBox strMsg

   DDETerminate MyChan

   Exit Sub

エラー:

   MsgBox Err.Number & " : " & Err.Description
   Exit Sub

End Sub
解説
  1. Sheet1と通信を開始します。
  2. For〜Nextを用いて、セル範囲をA1からC5までのテキストデータとしています。

動作確認

  1. フォームをビューモードで開きます。
  2. [実行] ボタンをクリックします。

  1. DDE通信を利用して、「予約管理簿」Excelファイルのデータをメッセージボックスに書き出します。

ページの先頭へ 前ページへ戻る

 


DDERequest関数を用いてExcelファイルからデータを引き出す方法 : VBAのTips解説


 

-Microsoft Access Club-

年額2,400円でドメインネームサーバーをご用意します。自宅サーバ構築時にご利用下さい。自宅サーバーは応用範囲が広いです。
年額2,400円でドメインネームサーバー。
自社・自宅サーバ構築時にご利用下さい。
やはり、自前サーバーは応用範囲が広いです。