既に起動しているアクセスの画面情報を監視しエクセルのシートに反映したいということでしょうか?
これは、エクセル側で仕組めば出来ないことはないでしょう。
しかし、必死こいて、そういう仕組みを開発する必要性は・・・・???
そういうことで、簡易的な仕組みを提案。
テキストファイルにAccessの更新情報を吐き出すというやり方。
更新情報01.txt
1
まあ、これだけの情報の受け渡しを担当するファイル。
エクセル側では0.1秒程度の間隔で更新の有無をチェック。
ファイルが存在すれば読み込んで削除して更新。
0.1秒以下の間隔で更新された場合の事を考えて、更新情報01.txt、更新情報02.txt・・・更新情報10.txtと命名。
auto_run でこの仕組みを起動しておけば事実上Access の更新が Excel に反映されると思います。
ただ、0.1秒待機する関数は、簡単ですが落とし穴もありますので紹介しておきます。
Public Sub Pause(ByVal PauseTime As Single)
Dim Finish As Single
Finish = Timer + PauseTime
Do
DoEvents
Loop Until Timer > Finish
End Sub
なお、ファイル出力等では次のような関数を利用すれば簡単です。
Public Function FileWrite(ByVal FileName As String, _
ByVal Text As String) As Boolean
On Error GoTo Err_FileWrite
Dim fso As FileSystemObject
Dim txs As TextStream
Set fso = New FileSystemObject
Set txs = fso.CreateTextFile(FileName, True)
txs.Write Text
FileWrite = True
Exit_FileWrite:
Exit Function
Err_FileWrite:
MsgBox Err.Description & "(FileWrite)", vbExclamation, " 関数エラーメッセージ"
Resume Exit_FileWrite
End Function
Public Function FolderExists(ByVal FolderName As String) As Boolean
Dim fso As FileSystemObject
Set fso = New FileSystemObject
FolderExists = fso.FolderExists(FolderName)
End Function
Public Function DeleteFile(ByVal FileName As String) As Boolean
On Error GoTo Err_DeleteFile
Dim isOK As Boolean
Dim fso As FileSystemObject
Set fso = New FileSystemObject
fso.DeleteFile FileName
isOK = True
Exit_DeleteFile:
DeleteFile = isOK
Exit Function
Err_DeleteFile:
Resume Exit_DeleteFile
End Function
Public Function FileReadArray(ByVal FileName As String) As String()
On Error GoTo Err_FileReadArray
Dim fso As FileSystemObject
Dim strTexts() As String
Set fso = New FileSystemObject
strTexts() = Split(fso.OpenTextFile(FileName).ReadAll, vbCrLf)
Exit_FileReadArray:
FileReadArray = strTexts()
Exit Function
Err_FileReadArray:
MsgBox Err.Description & "(FileReadArray)", vbExclamation, " 関数エラーメッセージ"
strTexts() = Split("")
Resume Exit_FileReadArray
End Function
お礼
お礼が遅くなりましてすいません。 有り難うございました。 ちょっと難しいです。