- - PR -
Mac版VBAでのWebアクセスなどAPIについて
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 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 |
|
投稿日時: 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