advanced help
per page, with , order by , clip by
Results of 1 - 1 of about 85 for VBA 強制終了 (0.004 sec.)
vba (14739), 強制終了 (237)
[[20200903002813]]
#score: 16175
@digest: 5f6f972c080b3190773a8bd23c7d5a86
@id: 85014
@mdate: 2020-09-06T06:13:48Z
@size: 3513
@type: text/plain
#keywords: 順フ (48350), entryidcollection (25703), objid (22399), 頼: (20299), 輩") (15497), 後輩 (14814), getitemfromid (14111), mynamespace (13876), 者わ (13442), newmailex (13013), xlapp (11325), 業依 (11188), 応手 (10881), 業手 (10498), ー. (9402), getnamespace (6832), フロ (4736), (qs (3097), マネ (2597), workbooks (2324), 手順 (2195), 依頼 (2060), 事象 (1945), わん (1632), クマ (1629), outlook (1479), ファ (1089), タス (1065), 当者 (1046), んわ (1036), 作業 (981), ネー (952)
『指定したエクセルファイルを開きたい』(わんわん)
VBA初心者です。 後輩のために、作業依頼メールがきたら、対応手順の記載されたエクセルファイルを自動で開くようなoutlookのVBAを作成したいと考えています。 作成してみたコードは『作業依頼:担当者わんわんの後輩』と本分に記載されたメールの受信をトリガーとして、対応手順ファイルが開かれる想定なのですが、『オブジェクトが必要です』とエラーが出ます。 いまいちオブジェクトがわからないのですが、解決策などお分かりの方がいらっしゃいましたらご教授お願いします。 以下が作成してみたVBAになります。 Private Sub Application_NewMailEx(ByVal EntryIDCollection As String) Dim objId As Object Dim Workbooks As Excel.Application Set myNameSpace = GetNamespace("MAPI") Set objId = myNameSpace.GetItemFromID(EntryIDCollection) If InStr(objId.Body, "作業依頼:担当者わんわんの後輩") Then Set Workbooks = Excel.Application Workbooks.Open (作業手順フロー.xlsx) End If End Sub < 使用 アプリ:outlook365、使用 OS:Windows7 > ---- Workbooks は Excel のオブジェクトなので、変数名として使用するとおかしな気がします。 Dim xlApp As New Excel.Application と宣言して、これでエラーが出ていないならよいですが、エラーが出るようなら Dim xlApp Set xlApp = CreateObject("Excel.Application") で。 xlApp.Workbooks.Open("D:¥Data¥作業手順フロー.xlsx") '// ファイルはフルパスで としてどうでしょうか。 (QS) 2020/09/03(木) 01:08 ---- アドバイスありがとうございます。 質問者の わんわんです。 ご教示いただいたコードではファイルはひらかなっかたので、以下のコードにしてみました。 以下のコードを実行てもファイルは開かなかったのですが、おかしな事象が発生いたしました。 openメソッドで開きたいファイルを開くと、『わんわんによって編集中のため読み取りで開く』と言うメッセージが出てきました。 ファイルは開いてもおらず、タスクマネージャで実行中のアプリケーションを確認しても、excelは実行されていませんでした。 ※outlookでのマクロで別のファイルを指定して実行した場合、同様の事象が発生いたしました。 ファイルが画面に表示させるにどのようにしたらよろしいでしょうか? 以下がコードになります。 以上、よろしくお願いいたします。 Private Sub Application_NewMailEx(ByVal EntryIDCollection As String) Dim objId As Object Dim xlApp Set myNameSpace = GetNamespace("MAPI") Set objId = myNameSpace.GetItemFromID(EntryIDCollection) If InStr(objId.Body, "作業依頼:担当者わんわんの後輩") Then 'Call xlApp Set xlApp = CreateObject("Excel.Application") xlApp.Workbooks.Open FileName:="D:¥Data¥作業手順フロー.xlsx" End If End Sub (わんわん) 2020/09/06(日) 02:44 ---- Set xlApp = CreateObject("Excel.Application") のあとに、 xlApp.Visible = True が必要です。 タスクマネージャーで、EXCEL を強制終了(もしくはPCを再起動)してから、試してみてください。 画面には出ていませんが、立ち上がっていると思います。 (QS) 2020/09/06(日) 07:05 ---- 例示が良くなかったですね。 xlApp.Workbooks.Open("D:¥Data¥作業手順フロー.xlsx") を使用する場合は、 Dim wb As Workbook Set wb = xlApp.Workbooks.Open("D:¥Data¥作業手順フロー.xlsx") のようにしないとだめでした。この方法だと、この後 wb を指定して通常の EXCEL 操作が可能になります。 立ち上げるだけなら xlApp.Workbooks.Open "D:¥Data¥作業手順フロー.xlsx" でも可能ですが、()の有無により書き方が異なります。 (QS) 2020/09/06(日) 07:27 ---- 質問者 わんわんです。 (QS)様 ありがとうございます! (QS)様のおかげで、想定していた動きをするマクロが作成できました! 本当にありがとうございました!!! (わんわん) 2020/09/06(日) 15:13 ...
https://www.excel.studio-kazu.jp/wiki/kazuwiki/202009/20200903002813.txt - [detail] - similar
PREV NEXT
Powered by Hyper Estraier 1.4.13, with 97059 documents and 608315 words.

訪問者:カウンタValid HTML 4.01 Transitional