Notesクライアントが停止していてもNotesメールを送る
こんにちは。
だいぶ間が空いてしまいましたが、前回と関連して。
ログオフしている状態でNotesから自動でメールを出したかったので、もちろんクライアントは起動していません。
Notesクライアントが起動していなくても、メールを送信するVBAを書いてみました。
せっかくなのでエクセルシートに記述したテンプレートを使ってメールを出しています。
Const EMBED_ATTACHMENT As Integer = 1454 Option Explicit Public Sub SendMail() Dim session As Object Dim notesdir As Object Dim Db As Object Dim doc As Object Dim mailitem As Object Dim MailTo As Variant Dim MailCc As Variant Dim MailBcc As Variant Dim MailSubject As Variant Dim wkNAtt As Object Dim MailBody As Variant Dim line Dim TempSheet Set session = CreateObject("Lotus.NotesSession") Call session.Initialize("パスワード") Set notesdir = session.GetDbDirectory("") Set Db = notesdir.OpenMailDatabase() Set doc = Db.CreateDocument Set mailitem = doc.CreateRichTextItem("Body") MailTo = Worksheets("Sheet1").Range("C2").Value MailCc = Worksheets("Sheet1").Range("C3").Value MailBcc = Worksheets("Sheet1").Range("C4").Value MailSubject = Worksheets("Sheet1").Range("C5").Value MailBody = Worksheets("Sheet1").Range("C6:C17") For Each line In MailBody With mailitem .APPENDTEXT line .ADDNEWLINE 1 End With Next With mailitem Set wkNAtt = .EmbedObject(EMBED_ATTACHMENT, "", "c:\Sample.txt") .ADDTAB 1 .ADDNEWLINE 1 End With Call doc.ReplaceItemValue("Subject", MailSubject) Call doc.ReplaceItemValue("SendTo", Split(MailTo, ",")) Call doc.ReplaceItemValue("CopyTo", Split(MailCc, ",")) Call doc.ReplaceItemValue("BlindCopyTo", Split(MailBcc, ",")) Call doc.Send(False) Set wkNAtt = Nothing Set mailitem = Nothing Set doc = Nothing Set Db = Nothing Set session = Nothing End Sub
あとはこれを呼び出すVBSを書いて実行すればクライアントが起動していなくてもNotesメールを自動送信できます。
前回のエントリーと組み合わせれば、Windowsが起動している状態であれば、Notesクライアントが起動していなくても、ログオンしていなくても、メールが送信できるわけです。
注意としては、Notesクライアントのデフォルトインストール先の設定がちゃんと入っていることが前提です。
ログオフ状態でVBAマクロを実行する方法
たまには技術的なことも書かないとなと思い、VBAネタです。
Windows7が乗ったPCで二台のNASをマウントしてバックアップをとっるていうVBスクリプトを書いてタスクで実行していました。
で、バックアップがこけた時にメールを送信するVBAを呼び出すのですが、どうやらこけたのにメールが飛んで無い。
原因調査の為、タスクスケジューラの履歴を確認。しっかりタスクは実行されている。だけど終わってないぞ。
タスクマネージャからプロセスを確認すると、「wscript.exe」と「EXCEL.EXE」が残っている。
スクリプトの中身がRobocopyでバックアップし、エラーがあったらVBAを呼びだすってフローなのでコピータスクは終了し、VBAを呼びだしたところで止まっている様子。
あれ?作成時に実行したときは問題無かった覚えがあるのですが。
そう、確かにコマンドプロンプトやダブルクリックから実行すると問題なく動くのです。
ですが、タスクに登録し「ユーザがログオンしているかどうかにかかわらず実行する(W)」にチェックを入れていると、タスクから実行された時失敗します。
タスクスケジューラから実行するテストをやってなかった私が悪いですね・・・
エクセルマクロを呼びだしたところで止まってしまってるので、ネットで情報を検索。
ズバリな方法がこちらにありました。
Windows環境でちょっとした定型業務を自動化する:汎用的なツールで作るDB→Excel→メール配信の自動システム (2/2) - @IT
対話的ログオンをしていない場合にエクセルを実行したいなら、以下のフォルダを先に作っておく必要があるようです。
32bitの場合: %SystemRoot%\System32\config\systemprofile\Desktop
64bitの場合: %SystemRoot%\SysWOW64\config\systemprofile\Desktop
しかしながら、マイクロソフトでは非対話的ログオンでのOffice実行は推奨もサポートもしていないようなので、あくまでも自己責任で!
キーボードは何ゴミ
ヒマなので、2本目です。
自宅のワイヤレスキーボードの調子が悪く、電池を取り換えても、ドライバ削除→インストしても改善せず。
本体なのか受信部なのかの切り分けもままならないまま、しかたなく新しいキーボードを購入。
基本的にキーボードに対するこだわりがないので、Amazonで安キーボードを購入しました。
が、これは失敗でした。どちらかというとストロークは深いほうが好み(タッチが強めなので周りとっては迷惑かもしれません)なのですが、購入したものすごく浅めでした。
さらに、パンタグラフのような軽さもなく、音で表すなら「グニュッ」っという感じ。
やっぱりキーボードは実物を触ってみないとだめですね。
危うく話を締めちゃいそうになりましたが、本題です。
みなさんはキーボードが何ゴミかご存知でしょうか?
中には基盤も入っているけど、表面はプラスチックだし・・・
あれこれ考える前にググってみました。
結果は自治体によって違うという答え。
横浜市なんかは燃えるゴミとの事。驚きです。
いい焼却炉を持ってるんでしょうね~
私の自治体では資源ごみでじた。
しかも直に捨ててよいそうです。
明日の朝にでもゴミ収集所に突っ込んでおきます。
Notesでメール作成
さまざまなルーチン作業を自動化しようって案がでまして・・・
Notesは利用する方でDBの開発なんか触ったことはなかったのですが、今回を機に少しはいじれるようになろうかなと、デザイナーと戦ってます。
現在は、自動的に生成・送信されたメールをさまざまな顧客向けに、作り変えて送信って作業をコピー&ペーストで行っているのですが、やはり人間が行うのでコピペミス等が起こってしまいます。
それをボタン一つでやってしまおうと考えたわけです。
イメージとしては顧客ごとのテンプレ文書を用意、変数部分はユニークな文字列にしてそれに自動送信メールから取得した値に変換してドラフト保存的なことを考えてるのですが、いままで遠ざけてた分、どーもいうことをきいてくれません。
しかし、分かってくると様々な課題が解決できそうな気がして、可能性を感じまね。
今までNotesと聞くとアレルギーを起こしてたことを反省してます・・・
もう少し早く気付いていればよかったなと。
Lotus Domino Designer 8.5開発者ガイド
- 作者: 佐藤権一,上ノ山俊秀,北楯良子,西塚麻弥
- 出版社/メーカー: 秀和システム
- 発売日: 2010/03/01
- メディア: 単行本
- 購入: 2人 クリック: 16回
- この商品を含むブログを見る
14.11 ADP雇用統計
前回:23.3万人
予想:22.2万人
結果:20.8万人
弱い指標にもかからず、下げは限定的。
その後全戻し、爆上げ。
119.286でエントリー。+50pips
ここ最近の円安は恐怖すら感じますね・・・
その恩恵に授かっているわけですが。
FXをMT4でやりたい初心者のための本! 誰でもこの本一冊でFXを始められる世界一親切なメタトレーダー4マニュアル!
- 作者: しろふくろう,ザイ編集部
- 出版社/メーカー: ダイヤモンド社
- 発売日: 2013/03/30
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る