人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

【EXCELでBeckyからメール送信】EXCEL内のボタンを押すとOutlookが立ち上がる→新規メールにはEXCELの選択範囲テキストが入力されている→内容を確認&追記して送信というマクロを使っていました(Outlook.Application)。メーラーがBeckyに変わってしまったため、同じ処理をBeckyで実現する方法を教えてください。■備考:mailtoリンクでは本文文字数が少ないです。CDO、BASP21ではなく、Beckyを使う方法を知りたいです。(社内利用のためできるだけ前と同じフローにしたいです)


●質問者: tskmry
●カテゴリ:コンピュータ インターネット
✍キーワード:application Becky CDO Excel Outlook
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● spyglass
●100ポイント

UWSCを使えばExcelからWindowsアプリへのアプローチが可能です。

-------------------------------------

変更されたセルの値が1ならUWSCを呼び出す例

Private Sub Worksheet_Change(ByVal Target As Range)

If Range(Target.Address).Value = 1 Then

Shell("UWSC実行ファイルまでのパス", 1)

End If

End Sub

-------------------------------------

UWSC

http://www.uwsc.info/


UWSCからアプリの起動

http://excel20080504.web.fc2.com/uwsc/U2.htm


UWSC掲示板

http://www3.bigcosmic.com/board/s/board.cgi?id=umiumi

◎質問者からの返答

こんな便利なツールがあるのを知りませんでした。

勉強になります。

このツールは利用者の各PCにインストールが必要ですよね?

グループ内で多数のメンバで共有するエクセルなので

「これをインストールください」というのは難しいです。


2 ● Silvanus
●1000ポイント ベストアンサー

何のエレガントさもテクもないマクロですが、こんなんで宜しければ。

自分の手元のPCでは失敗がありませんでしたが

少し動作が重たいPCではTo、Subject、Bodyのペイストに失敗する可能性があります。

その場合は、コメントアウトしてあるウェイトを有効にして下さい。上手く行くかも。

その辺りの安全対策も現バージョンでは全く取っておりません。

下記マクロを使用される場合、実行前に一度だけ

VBAメニューの[ツール]-[参照設定]から"Microsoft Forms 2.0 Object Library"に

チェックを入れから、ワークブックを保存して下さい。

Option Explicit

Sub Test()

 Dim strBody As String
 Dim rngSCell As Range

 For Each rngSCell In Selection
 strBody = strBody & rngSCell.Value & Chr(13) & Chr(10)
 Next
 hatena_tskmry_101117 "dummy@hatena.jp", "This is a test mail.", strBody

End Sub

Sub hatena_tskmry_101117(strTo As String, strSubject As String, strBody As String)

 Const StrPathBk As String = "C:\Program Files\Rimarts\B2\B2.exe"
 ' Becky!実行ファイルへのフルパス

 On Error GoTo TrapErr1
 AppActivate "Becky!"
 AppWaitSec 1
 On Error GoTo 0
 SendKeys "%mc", True
 AppWaitSec 1
 PasteText strTo
' AppWaitSec 1
 SendKeys "%s", True
' AppWaitSec 1
 PasteText strSubject
' AppWaitSec 1
 SendKeys "{tab}", True
' AppWaitSec 1
 PasteText strBody
 
Exit Sub

TrapErr1:
 Shell StrPathBk
 AppWaitSec 3
 Resume Next

End Sub

Function PasteText(strPaste As String) As String

 Dim dobj As New DataObject

 dobj.SetText strPaste
 dobj.PutInClipboard
 SendKeys "^v", True

End Function

Sub AppWaitSec(intSec As Integer)

 Application.Wait Now + TimeSerial(0, 0, intSec)

End Sub
◎質問者からの返答

id:Silvanusさん、ありがとうございます!!

詳細検証できていないのですが、だいたい動きました!

環境はWindowsXP+EXCEL2003(SP3)+Becky2.53です。

何回か試しましたが

To:入力される

Subject:入力されない

Body:入力されたりされなかったりする

という状況です。

解決を急いではいませんので、よろしくお願いします m(_ _)m

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ