0


0

私は、Office固有のFileDialogがSharepointサイトと相互運用することを要求するOutlookアドインに取り組んでいます。共通ファイルダイアログは相互運用性がありません。 WordとExcelの両方にGlobals.ThisAddIn.Application.Applicationの下にget_fileDialogメソッドがあることを私は知っていますが、Outlookはそうではありません。 OutlookのFileDialogを起動する方法 それも可能ですか?

5 Answer


1


http://msdn.microsoft.com/en-us/library/aa155724%28office.10%29.aspx[Microsoft共通ダイアログ]

COMDLG32.OCX( "Common Dialog ActiveX Control")がインストールされている場合は、これを使用できます。ここでは例を挙げて説明します。 (図2:Wordで複数のファイルを選択しないでください。 ")。


1


OutlookのApplicationオブジェクトは `FileDialog`を提供していないようです。 しかし、あなたがExcel参照を持っても構わないと思っているならば、簡単な回避策は:

Dim fd As FileDialog
Set fd = Excel.Application.FileDialog(msoFileDialogFolderPicker)
Dim folder As Variant
If fd.Show = -1 Then
    For Each folder In fd.SelectedItems
        Debug.Print "Folder:" & folder & "."
    Next
End If


0


'"モジュール"を追加します。 それから、このような宣言を追加してください。

オプション明示的なプライベート宣言関数GetOpenFileName _Lib "comdlg32.dll" _Alias "GetOpenFileNameA"(OPENFILENAMEとしてのpOpenfilename)としての長さ文字列としてのnMaxFile長さとしてのlpstrFileTitle文字列としてのnMpsFileInitialDir文字列としてのlpstrTitle整数値としてのnFileOffset整数値としてのnFileExtension整数値としてのlpstrDefExt文字列としてのlctrData lpfnHookとしての長いlpTemplateName文字列としての型

パブリック関数MyOpenFiledialog()文字列Dim OFName As OPENFILENAME As Name.lStructSize = Len(OFName) '親ウィンドウを設定します。OFName.hwndOwner = Application.hWnd'アプリケーションのインスタンスを設定します。OFName.hInstance = Application.hInstance 'フィルタを選択します。OFName.lpstrFilter = "テキストファイル(* .txt)" Chr $(0) "* .txt" Chr $(0) "すべてのファイル(*。*)" Chr $(0) "*。*" Chr $(0) 'ファイルOFName.lpstrFile = Space $(254)のバッファを作成します。 '返されるファイルの最大長を設定します。OFName.nMaxFile = 255'ファイルタイトルのバッファを作成します。OFName.lpstrFileTitle = Space $(254) '最大値を設定します。返されるファイルのタイトルの長さOFName.nMaxFileTitle = 255 '初期ディレクトリを設定OFName.lpstrInitialDir = "C:\"'タイトルを設定OFName.lpstrTitle = "ファイルを開く -  VB Forums.com" 'フラグはありませんOFName.flags = 0 'GetOpenFileName(OFName)の場合は' Open File 'ダイアログを表示し、次にMsgBox "File to File:"トリム$(OFName)を開きます。 lpstrFile)MyOpenFiledialog = Trim $(OFName.lpstrFile)その他MsgBox "キャンセルが押されました" MyOpenFiledialog = vbNullString End Sub終了 '使用法:Private Sub Command1_Click()Text1.Text = MyOpenFiledialog End Sub


0


Public Sub TestFileDialog()Excel.Applicationとして薄暗いotherObject Office.FileDialogとして薄暗いfdFolder

otherObjectを設定=新しいExcel.Application otherObject.Visible = Falseを設定fdFolder = otherObject.Application.FileDialog(msoFileDialogFolderPicker)fdFolder.Show Debug.Print


0


プライベートSub multiEML2MSG()

定数PR_ICON_INDEX =

Dim objPost as Outlook.PostItem Dim objSafePost As Redemption.SafePostItem Dim objNS as Outlook.NameSpace Dim objInbox As Outlook.MAPIFolder

objNS = Outlook.GetNamespace( "MAPI")に設定objInbox = objNS.GetDefaultFolder(olFolderInbox)に設定objPost = objInbox.Items.Add(OlItemType.olPostItem)を設定

objSafePost = New Redemption.SafePostItemに設定します。


Excel.ApplicationとしてDim xlObj Office.FileDialogとしてDim fd

xlObj = New Excel.Applicationを設定します。

fd = xlObj.Application.FileDialog(msoFileDialogFolderPicker)をfd .Title = "に設定しますPSTファイルを選択します。" .ButtonName = "Ok"

fd.SelectedItems.Count <> 0の場合xDirect $ = fd.SelectedItems(1)

licznik = 1 Do xFname $ <> ""

XPathEML = xDirect $

objPost.Save objSafePost.Item = objPost objSafePost.Import XPathEML、Redemption.RedemptionSaveAsType.olRFC822 objSafePost.MessageClass = "IPM.Note" objSafePost.Fields(PR_ICON_INDEXAsXP.SMSPMS.SMSPMS.SMSPMS.SYSPM​​S.SMSPMSSTypePol.SextSMSPMSSMSPXSMSPMSSMSPXSMSPMSSMSPXSGOXPXSMSPMSSMOXPGIVEPROJECTSMOXPMSMOXPARGOXXXXXXXXXXXXXXXXXXXXXXXXXX各種当たりズ当たりごとのオブジェクトタイプ:


xFname $ = Dir licznik = licznik 1ループ

で終わったら

xlObj.Quit設定xlObj =なし設定objSafePost =なし設定objPost =なし設定objInbox =なし設定objNS =なし

終了サブ