質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

リストボックス

ユーザーがリストから1つ以上のアイテムを選択できるようにするGUI要素です。

Q&A

解決済

1回答

7993閲覧

CreateObject("Shell.Application")について

tomtom10118056

総合スコア1

ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

リストボックス

ユーザーがリストから1つ以上のアイテムを選択できるようにするGUI要素です。

0グッド

0クリップ

投稿2020/07/03 11:46

前提・実現したいこと

エクセル2013のマクロでCreateObject("Shell.Application")を記述して
フォルダ内に保存しているファイルをリストボックスに表示、選んだ各種ファイルを
表示させ、閲覧・修正・保存したいと思っています。

■■な機能を実装中に以下のエラーメッセージが発生しました。

オフィス365では読み込んだファイルPDF、Word、PP、JPEG、Excel等全て正常に開きますが、
エクセル2013上ではPDF、Word、PP、Jpegは正常に開けますがExcelのみ開きません。

エラーメッセージ エラーメッセージは何も表示されず、エクセル2013が開かないだけです。 ### 該当のソースコード open_file = UserForm2.ListBox1.List(UserForm2.ListBox1.ListIndex, 0) With CreateObject("Shell.Application")    .shellexecute "\gn\NB\ファイルライブラリー\契約書\" & open_file, vbNormalFocus End With ### 試したこと オフィス365およびエクセル2013の[ツール][参照設定]でVBA ProjectのMicrosoft ScriptingRuntimeに☑があること ### 補足情報(FW/ツールのバージョンなど)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

apiのshellexecute使ってもだめ?

vba

1Private Declare Function ShellExecute Lib "shell32" _ 2 Alias "ShellExecuteA" ( _ 3 ByVal Hwnd As Long, ByVal lpszOp As String, _ 4 ByVal lpszFile As String, ByVal lpszParams As String, _ 5 ByVal LpszDir As String, ByVal FsShowCmd As Long) As Long 6 7Private Const SW_HIDE = 0 'ウィンドウ非表示 8Private Const SW_SHOWNORMAL = 1 '通常の状態で開く 9Private Const SW_SHOWMINIMIZED = 2 'ウィンドウ最小化 10Private Const SW_SHOWMAXIMIZED = 3 'ウィンドウ最大化 11Private Const SW_SHOW = 5 'ウィンドウを現在の位置とサイズで表示 12Private Const SW_RESTOR = 6 'ウィンドウを元の位置とサイズで表示 13 14' ファイル実行 15Public Sub FileExecute(filePath As String) 16 Call ShellExecute(0, vbNullString, filePath, vbNullString, vbNullString, 5) 17End Sub 18 19' 実行はこんな感じ 20open_file = UserForm2.ListBox1.List(UserForm2.ListBox1.ListIndex, 0) 21 FileExecute "\gn\NB\ファイルライブラリー\契約書\" & open_file 22

投稿2020/07/03 12:50

sousuke

総合スコア3830

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tomtom10118056

2020/07/03 13:13

sousuke様 ご指南ありがとうございます。 動作しないのは会社パソコンですので週明けにトライしてみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問