Excel VBA質問箱 IV

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

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


5787 / 13645 ツリー ←次へ | 前へ→

【48806】Mac版VBAでのWebアクセスなどAPIについて tosh 07/5/9(水) 22:59 質問[未読]
【48829】Re:Mac版VBAでのWebアクセスなどAPIについて Kein 07/5/10(木) 20:53 発言[未読]
【48858】Re:Mac版VBAでのWebアクセスなどAPIについて tosh 07/5/12(土) 5:41 お礼[未読]
【48870】Re:Mac版VBAでのWebアクセスなどAPIについて tosh 07/5/13(日) 19:35 回答[未読]

【48806】Mac版VBAでのWebアクセスなどAPIについて
質問  tosh  - 07/5/9(水) 22:59 -

引用なし
パスワード
   MSXML2や下記の様なコードでWebアクセスや関連付けられたアプリケーションによる任意のファイルの起動をしているのですが、Mac版VBAでそれを可能にする方法はありますでしょうか?Windows 0fficeで文書作成中に自作ツールバーあるいはショートカットキーで実現している機能をMacでも使えるようにしたいと考えています。Mac版ではVBAのVersionが依然として古くMSXML2が使えず、下記のAPIも使えません。

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

【48829】Re:Mac版VBAでのWebアクセスなどAPIにつ...
発言  Kein  - 07/5/10(木) 20:53 -

引用なし
パスワード
   Macを使っている常連回答者は少ないので、なかなかレスがつかないのかと
思います。↓こちらの板へ移って、再質問してみたらどうでしょうか ?
http://excelfactory.sakura.ne.jp/excelboard/excelvba/excel.cgi
常連さんの中に「Macのメーカーと同名のHN」の方がおられます。もちろん
Mac使いだから、そのようなHNにされたようです。必ず回答がもらえるとは
限らないけど、少なくともここよりは可能性がありそうな気がしますが・・。

あ、板を移るならこちらは解決にして下さい。それから移動先で特定の人を
指名するようなタイトルは付けないように。・・念のため。

【48858】Re:Mac版VBAでのWebアクセスなどAPIにつ...
お礼  tosh  - 07/5/12(土) 5:41 -

引用なし
パスワード
   Keinさん、下記の板に移って質問してみます。掲示板などへの投稿も今回がほぼ初めてなので注意事項も大変助かります。ありがとうございました。

▼Kein さん:
>Macを使っている常連回答者は少ないので、なかなかレスがつかないのかと
>思います。↓こちらの板へ移って、再質問してみたらどうでしょうか ?
>http://excelfactory.sakura.ne.jp/excelboard/excelvba/excel.cgi
>常連さんの中に「Macのメーカーと同名のHN」の方がおられます。もちろん
>Mac使いだから、そのようなHNにされたようです。必ず回答がもらえるとは
>限らないけど、少なくともここよりは可能性がありそうな気がしますが・・。
>
>あ、板を移るならこちらは解決にして下さい。それから移動先で特定の人を
>指名するようなタイトルは付けないように。・・念のため。

【48870】Re:Mac版VBAでのWebアクセスなどAPIにつ...
回答  tosh  - 07/5/13(日) 19:35 -

引用なし
パスワード
   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

これでうまく行きました。まだ試していませんが、
HTTP://office.microsoft.com/ja-jp/access/HA012288801041.aspx
にあるようにMacScript関数は戻り値を返してくれるようなので、
XML取得もAppliScriptのdownload関数で同様に処理できそうです。

ありがとうございました。

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