電子書籍の厳選無料作品が豊富!

エクセルとアウトルックを立ち上げた状態でエクセルのシートにコマンドボタンを設置して、
*****************************************************
Private Sub CommandButton1_Click()

'参照設定:Microsoft Outlook ○.○ Object Library

Dim ObjOut As Outlook.Application
Dim OutMail As MailItem
Dim myNaSp As Namespace
Dim FolderName As String
Dim rc As Long

Set ObjOut = GetObject(, "OutLook.Application")
Set OutMail = ObjOut.CreateItem(olMailItem)

Set myNaSp = GetNamespace("MAPI")

FolderName = myNaSp.PickFolder
MsgBox "「" & FolderName & "」が選択されました。"

rc = Shell("C:\Program Files\Microsoft Office\OFFICE11\EXCEL.EXE" & ActiveWorkbook.FullName, 1)
AppActivate rc

Set myNaSp = Nothing

End Sub
*****************************************************
をすると、アウトルックの「フォルダー選択」ダイアログが開くのですが、
フォルダを選択した後に、エクセル画面に戻りません。

手作業でエクセル画面に戻す(アクティブ)にするのですが
Shellの部分で、「ファイルが見つかりません」となります。

rc = Shell("C:\Program Files\Microsoft Office\OFFICE11\EXCEL.EXE", 1)

に変更すると、エラーにはならないのですが、
新規のブックが立ち上がってしまいます。

エクセルのシートのボタンを押したら、アウトルックのフォルダ選択画面を出して
選択後、元のエクセルシートをアクティブにさせたいのですがどうすればいいでしょうか?

Dim xlApp As Object
Set xlApp = CreateObject("Excel.Application")
AppActivate xlApp

を追加してもダメでした。

ご教授よろしくお願いします。

A 回答 (1件)

こんにちは。



> MsgBox "「" & FolderName & "」が選択されました。"
>
> rc = Shell("C:\Program Files\Microsoft Office\OFFICE11\EXCEL.EXE" & ActiveWorkbook.FullName, 1)
> AppActivate rc

これを

MsgBox "「" & FolderName & "」が選択されました。", vbSystemModal

AppActivate Application.Caption

に換えてみたらどうでしょう?

ちなみにCommandButtonの.TakeFocusOnClickをFlaseに変更してない場合は
さらに続けて

ActiveCell.Activate

が要ります。

.TakeFocusOnClickプロパティをFlaseに変更しておいた方が何かとエラーフリーです。
(デザインモードでCommandButtonを右クリックしてプロパティ、で設定できます)
    • good
    • 0
この回答へのお礼

さっそくのご回答ありがとうございます。
実はこれは会社でしか検証できないので来週会社に行ったら朝一でやってみます!

vbSystemModalと
AppActivate Application.Captionですね!

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

お礼日時:2012/10/05 22:31

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!