- PR -

Mac版VBAでのWebアクセスなどAPIについて

1
投稿者投稿内容
tosh
会議室デビュー日: 2007/05/09
投稿数: 2
投稿日時: 2007-05-09 23:08
MSXML2や下記の様なAPIでWebアクセスや関連付けられたアプリケーションによる任意のファイルの起動をしているのですが、Mac版VBAでそれを可能にする方法はありますでしょうか?Windows 0fficeで文書作成中に自作ツールバーあるいはショートカットキーで実現している機能をMacでも使えるようにしたいと考えています。

MacにはAppleScriptというOSレベルでサポートされているWindowsでのWSHやVBのようなものがあるのですが、AppleScriptからVBAは操作できてもVBA側からAppliScriptを操作するための情報が探せませんでした。VBAの範囲内でなくともMac版VBAから呼び出す形で操作可能な形であればどのような手法でも構いません。具体的なコードでなく方針でも大変助かります。よろしくお願い致します。

Private Declare Function URLDownloadToFile Lib "urlmon" Alias _
"URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As _
String, ByVal szFileName As String, ByVal dwReserved As Long, _
ByVal lpfnCB As Long) As Long

Private Declare Function ShellExecute Lib "shell32.dll" Alias _
"ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As _
String, ByVal lpFile As String, ByVal lpParameters As String, _
ByVal lpDirectory As String, ByVal nShowCmd_ As Long) As Long

Sub download()
Const strURL = "http://www.jem.org/cgi/reprint/188/11/1977.pdf"
Dim strFNAME As String
Dim returnValue
strFNAME = "C:\\\\test.pdf"
returnValue = URLDownloadToFile(0, strURL, strFNAME, 0, 0)
MsgBox strFNAME & "に保存されました"
End Sub

Sub openpdf()
Path = "C:\\\\"
returnValue = _
ShellExecute(0, "open", "test.pdf", vbNullString, Path, 1)
End Sub
tosh
会議室デビュー日: 2007/05/09
投稿数: 2
投稿日時: 2007-05-13 19:25
http://members3.jcom.home.ne.jp/cgi-bin/board.cgi?ID=daruma_kyo&MSO=jcom
http://excelfactory.net/excelboard/excelvba/excel.cgi?mode=all&namber=97173&rev=0
↑こちらにて回答を頂きました。マルチポストしてしまい大変申し訳ありませんでした。

環境は
Mac OS 9.1(Mac OS J1-9.1)、Word 2001、スクリプト編集プログラム J2-1.5.5
VBA (5.00, print(application.vbe.version)にて)
です。

ファイルのダウンロードはAppleScriptを使用する事により可能
VBAからAppleScriptを使用するにはMacScript関数を使用

AppleScript:download.scptというファイル名でVBAと同じフォルダに保存

set the target_URL to "http://www.jem.org/cgi/reprint/188/11/1977.pdf"
set the destination_file to ((path to desktop as string) & "test.pdf")
tell application "URL Access Scripting"
download target_URL to file destination_file replacing yes
end tell
tell application "Finder" to open alias destination_file

VBA:
Sub download()
MacScript ("download.scpt")
End Sub

これでうまく行きました。まだ試していませんが、XML取得もAppliScriptのdownload関数で同様に処理できそうです。

失礼しました。
1

スキルアップ/キャリアアップ(JOB@IT)