①メール添付の出退勤レポートを特定のフォルダに移動するデモ(OutlookVBA)
<[Outlook_VBA]GJCloud_メール添付アテンダンスレポ取出(OutlookVBA)>
'[Outlook_VBA]GJCloud_メール添付アテンダンスレポ取出
'Copyright 2019 Grasphere Japan Co., Ltd. All Rights Reserved.
Function GetFolder() As String
Dim appWord As Object ' Word.Application
Dim dlgFile As FileDialog
Dim wshShell As Object ' WScript.Shell
'
Set appWord = CreateObject("Word.Application")
Set dlgFile = appWord.FileDialog(Office.msoFileDialogFolderPicker)
Set wshShell = CreateObject("WScript.Shell")
' ダイアログのタイトルを指定します
dlgFile.Title = "保存先の指定"
' ダイアログが開かれた際に最初に表示されるフォルダーを指定します。
dlgFile.InitialFileName = wshShell.SpecialFolders("MyDocuments") & "\"
If dlgFile.Show = -1 Then
GetFolder = dlgFile.SelectedItems(1)
Else
GetFolder = ""
End If
End Function
' メール受信時に発生するイベントにする場合は以下を有効にする
'Private Sub Application_NewMailEx(ByVal EntryIDCollection As String)
Sub GJCloud_メール添付アテンダンスレポ取出()
Dim objInbox As Object
Dim objFolder As Object
Dim strPath As String
Dim i As Long
'Outlookウィンドウの最小化(以降フォルダ選択ダイアログが裏に隠れてしまうため)
Application.ActiveExplorer.WindowState = olMinimized
'「受信トレイ」(デフォルトフォルダ)で動作させます。
Set objInbox = GetNamespace("MAPI").GetDefaultFolder(olFolderInbox)
Set objFolder = objInbox
'添付ファイルがあるメールのフォルダを指定する場合:2階層以上ある場合は「.Folders.Item(<フォルダ名>)」を追加してください。
'Set objFolder = objInbox.Folders.Item("1.サブフォルダ").Folders.Item("1-1.サブフォルダ")
'添付ファイルの保存先をパスで指定します。
strPath = GetFolder() & "\"
For Each objItem In objFolder.Items
For i = 1 To objItem.Attachments.Count
'添付ファイルに拡張子がある場合のみ処理します。
If InStr(objItem.Attachments.Item(i), "attendance") <> 0 Then
objItem.Attachments.Item(i).SaveAsFile strPath & objItem.Attachments.Item(i)
MsgBox "保存先: " & vbCrLf & strPath & vbCrLf & _
"ファイル名:" & vbCrLf & objItem.Attachments.Item(i)
End If
Next i
Next objItem
Set objItem = Nothing
Set objInbox = Nothing
Set objFolder = Nothing
End Sub
②出退勤レポートから勤怠規定に合わせて出力させるサンプルデモ(ExcelVBA)
<サンプルツール:ExcelVBAと出退勤レポートサンプルデータ>
GJ-Cloud出退勤レポートから勤怠規定に合わせて出力させるサンプル