2011-03-24 5 views
0

これは初めての質問です。私はSQLデベロッパーであり、VBでは非常に緑色です。電子メールでトリガされたフォルダをプログラムで作成するようにVBスクリプトを調整する

私は自分の部署Quickbaseのオンラインデータベースを管理しており、このWebサイトではレポートの依頼を管理しています。私はそれぞれのチケットを作成し、そのチケットは開発者に通知する電子メールを作成します。その割り当てを担当する。私たちは、要求が来るたびにフォルダを設定しています。このフォルダを手動で作成するのは面倒で面倒です。

私は尋ねて周りを見回し、私が必要なことをすることができたスクリプトを渡ったり来たりしました。しかし、私はそれを私のニーズに合わせてカスタマイズする方法や、正しく実装する方法がわかりません。これは私があなたの援助、公正なプログラミングの神々が必要なところです。このドラゴンを殺すのを助けてください。そして、領域のすべての富があなたのものになります*。

Outlook VBA 

Sub MakeFile(MyMail As MailItem) 
    myMailEntryID = MyMail.EntryID 
    Set outlookNameSpace = Application.GetNamespace(“MAPI”) 
    Set outlookMail = outlookNameSpace.GetItemFromID(myMailEntryID) 
    MyArgument = OutlookMail.Subject 
    Dim sMyCommand = “c:\makefile.bet ” & MyArgument 
    Shell “cmd /c ” & sMyCommand, vbHide 
End Sub 
Makefile.bat 
@echo off 
cls 
mkdir %1 

webtsiteのURLは次のとおりです。www.quickbase.com ルートフォルダパス:H:/// NTSP /データ/レポート - 基準/ quickbaseのドキュメント/ [フォルダを作成する]

*富は金銭的なものではありませんが、善良な気持ち、完全性は仲間のオタクを助けることによってのみ得られます。そして、それはe-peenを強く、強くします!

+0

など私たちは、その後、電子メールをテストし、既存のフォルダにそれを比較できるように新しいフォルダを作成するためのテストを決定して、新しいものを作るために持っています。 Outlookでフォルダを作成するか、ハードディスク上のディレクトリを作成しますか? – JimmyPena

+0

あなたの質問から余分な騒音をすべて除去してください。お願いします。私はそれがあなたが正確に求めているもののトラックを失っているので、そこに多くのノイズがあります。 –

答えて

0

私はあなたを正しい方向にスタートさせるつもりです。私はVBAだけであなたが望むものを達成でき、シェルを使う必要はないと思います。

まず、このすべてが起こるべき時のイベントをフックする必要があります。あなたの受信トレイが電子メールを受け取ったときにそれが想像されます。私がここにいれば、これが始まりです。

2つの重要なことを理解してください。

  1. これは、受信トレイに入ってくるアイテムにのみ適用されます。したがって、すでに別のフォルダにアイテムを移動するルールがある場合、それは機能しません。

  2. あなたが来る電子メールを "テスト"する必要があります - 私の例は、被験者のテストを示しています。 、マクロ]をポイントし、[ツール]メニューの[

    :それは、Visual Basic Editorでコードを入力するには

主題はそれを「私のテスト」であり場合にのみ特別なルーチンあなただけを呼び出します。 Visual Basic Editorを次にクリックします。 [プロジェクト]ウィンドウで、フォルダを展開し、[ThisOutlookSession]アイコンをダブルクリックします。 次のコードを入力またはコードウィンドウに貼り付けます。 [ファイル]メニューの[

Dim WithEvents objInboxItems As Outlook.Items 


' Run this code to start your rule. 
Sub StartRule() 
    Dim objNameSpace As Outlook.NameSpace 
    Dim objInboxFolder As Outlook.MAPIFolder 

    Set objNameSpace = Application.Session 
    Set objInboxFolder = objNameSpace.GetDefaultFolder(olFolderInbox) 
    Set objInboxItems = objInboxFolder.Items 

End Sub 

' Run this code to stop your rule. 
Sub StopRule() 
    Set objInboxItems = Nothing 
End Sub 

' This code is the actual rule. 
Private Sub objInboxItems_ItemAdd(ByVal Item As Object) 
    If Item.Subject = "My Test" Then 
     Call checkForFolder 
    End If 
End Sub 

Private Sub checkForFolder() 



End Sub 
  1. 、保存VbaProject.OTMをクリックしてください。
  2. StartRuleマクロとStopRuleマクロを実行して、ルールのオンとオフを切り替えることができるようになりました。
  3. Visual Basic Editorを終了します。

(あなたは変数が「フック」に到達するためにOutlookを起動および停止する必要がある場合があります。

あなたはこの作業を取得し、理解したら、あなたはオフスイッチで削除することができます。

その後、スクリプトが被写体に対応していない

+0

ありがとうございます。私は明日の午後それを試してみよう、うまくいけば指示に従うことができる:) – MooNinja

関連する問題