Excel VBA質問箱 IV

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

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


12807 / 13646 ツリー ←次へ | 前へ→

【8532】ExcelからPDFファイルを開きたい。 きむきむ 03/10/22(水) 18:48 質問
【8534】Re:ExcelからPDFファイルを開きたい。 INA 03/10/22(水) 19:02 回答
【8543】Re:ExcelからPDFファイルを開きたい。 きむきむ 03/10/23(木) 13:16 お礼

【8532】ExcelからPDFファイルを開きたい。
質問  きむきむ  - 03/10/22(水) 18:48 -

引用なし
パスワード
   Excelを使用し、各種のファイルを操作するマクロファイルを作成中です。
ExcelからExcelファイルを、ExcelからWordの文章を、ExcelからPowerPointを、
等と、フォームのボタンを押すことにより指定ファイルが自動的に開く様に
作成しております。

Excel、Word、PowerPoint、Accessは克服できたのですが、
JPEGとPDFファイルを開くことができません。
どなたかご存知な方、教えてください。

ちなみに、Word、PowerPoint、Accessは、CreateObject()関数を使用しています。

【8534】Re:ExcelからPDFファイルを開きたい。
回答  INA  - 03/10/22(水) 19:02 -

引用なし
パスワード
   関連づけされている拡張子(エクスプローラからダブルクリックで起動する)の
ファイルであれば、ShellExecute関数で実行できます。


<標準モジュール>
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 Sample()
Dim Ret As Long
Dim ファイル名 As String
Dim フォルダ名 As String

ファイル名 = "無題.txt"
フォルダ名 = "C:\My Documents\"

Ret = ShellExecute(0, "open", ファイル名, "", フォルダ名, 1)

End Sub

【8543】Re:ExcelからPDFファイルを開きたい。
お礼  きむきむ  - 03/10/23(木) 13:16 -

引用なし
パスワード
   ▼INA さん:
>関連づけされている拡張子(エクスプローラからダブルクリックで起動する)の
>ファイルであれば、ShellExecute関数で実行できます。

素早いお返事、ありがとうございました。
頑張ってみたのですが、ShellExecute()関数を動作させると、
「SubまたはFunctionが定義されていません」というエラーになってしまいました。
多分、標準モジュール側での定義が正しくできなかったからと思われます。
(実はVBA初心者なので、標準モジュールの定義ができませんでした)

結局、下記のような対応に逃げてしまいました。
Sub PDF_Open()
  Dim Ret As Long
  Dim アプリ名 As String
  Dim フォルダ名 As String
  Dim ファイル名 As String

  アプリ名 = "c:\Program Files\Adobe\Acrobat 5.0\Reader\AcroRd32.exe"
  フォルダ名 = "C:\My Documents\"
  ファイル名 = "カタログ.pdf"

  Ret = Shell(アプリ名 + " " + フォルダ名 + ファイル名, 4)
End Sub

とりあえず、何はともあれ目的達成です。
が、今後折を見てShellExecute()関数にもチャレンジしてみます

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