[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『エクセル立ち上げたらアウトルックも立ち上げる』(あけち)
エクセル立ち上げだら下記メッセージが立ち上がり尚且つアウトルックが開いてないと触らないようにしたいです
メッセージ
1 配達の依頼は前日の昼までにお願いします
2 キャンセルする場合は◯◯に連絡してください
3 このエクセル使用する際はアウトルックも立ち上げてください
何かいい方法ないですか?マクロ教えてください
< 使用 Excel:Excel2013、使用 OS:Windows8 >
エクセルを立ち上げたら ということではなく、特定のマクロブックを開いたとき ということですね?
マクロブックを開いたときに何かやらせよう(今回の場合は MsgBox での表示)とする場合は、 ThisWorkbookモジュールの Workbook_Open プロシジャに記述します。
メッセージの1と2は必ず表示するんですか? メッセージの3の表示については、アウトルックが立ち上がっていなければ、メッセージを出して終了? アウトルックが立ち上がっていれば、3.の表示なしでエクセル継続?
そのあたりの希望の流れが不明ですけど、たとえば
Private Sub Workbook_Open() Dim mlobj As Object
On Error Resume Next Set mlobj = GetObject(, "Outlook.Application") On Error GoTo 0 If mlobj Is Nothing Then MsgBox "アウトルックを立ち上げた後に、再度、ブックを開いてください" & vbLf & "強制終了します" ThisWorkbook.Close End If
MsgBox "配達の依頼は前日の昼までにお願いします" & vbLf & "キャンセルする場合は◯◯に連絡してください" Set mlobj = Nothing
End Sub
もし、エクセルそのものを終了してよければ
Private Sub Workbook_Open() Dim mlobj As Object
On Error Resume Next Set mlobj = GetObject(, "Outlook.Application") On Error GoTo 0 If mlobj Is Nothing Then MsgBox "アウトルックを立ち上げた後に、再度、ブックを開いてください" & vbLf & "強制終了します" Application.Quit Else MsgBox "配達の依頼は前日の昼までにお願いします" & vbLf & "キャンセルする場合は◯◯に連絡してください" Set mlobj = Nothing End If
End Sub
(β) 2017/01/09(月) 22:26
以下のほうが、もしかしたら、そちらのイメージに合うかも。
Private Sub Workbook_Open() Dim mlobj As Object
On Error Resume Next Set mlobj = GetObject(, "Outlook.Application") On Error GoTo 0 If mlobj Is Nothing Then MsgBox "アウトルックを立ち上げた後に、再度、ブックを開いてください" & vbLf & "強制終了します" If Workbooks.Count = 1 Then Application.Quit Else ThisWorkbook.Close False End If Else MsgBox "配達の依頼は前日の昼までにお願いします" & vbLf & "キャンセルする場合は◯◯に連絡してください" Set mlobj = Nothing End If
End Sub
(β) 2017/01/09(月) 23:37
↑ アウトルックが起動していなかったら、マクロ内で起動させるという流れもあるかも。
(β) 2017/01/10(火) 09:08
???さんとかぶりましたが、たとえば
Private Sub Workbook_Open() Dim mlobj As Object
On Error Resume Next Set mlobj = GetObject(, "Outlook.Application") On Error GoTo 0 If mlobj Is Nothing Then With CreateObject("Outlook.Application") .CreateItem(0).Display End With End If MsgBox "配達の依頼は前日の昼までにお願いします" & vbLf & "キャンセルする場合は◯◯に連絡してください"
End Sub
(β) 2017/01/10(火) 15:56
↑ アウトルックが起動していない状態で、自動起動しますが、アウトルックの画面が前面に出て エクセルが後ろに隠れ、メッセージも、そのままでは見えませんので、以下のように、エクセルを最前面に だしなおしたほうがいいですね。
ThisWorkbookモジュールを以下で置き換えてください。
Option Explicit
Private Declare Function SetForegroundWindow Lib "USER32" _ (ByVal hWnd As Long) As Long
Private Sub Workbook_Open() Dim mlobj As Object
On Error Resume Next Set mlobj = GetObject(, "Outlook.Application") On Error GoTo 0 If mlobj Is Nothing Then With CreateObject("Outlook.Application") .CreateItem(0).Display End With SetForegroundWindow Application.hWnd End If
MsgBox "配達の依頼は前日の昼までにお願いします" & vbLf & "キャンセルする場合は◯◯に連絡してください"
End Sub (β) 2017/01/11(水) 19:19
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.