• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:MSワードの文章をランダムに抽出して自動メール発信)

MSワード文書をランダムに抽出して自動メール発信する方法

このQ&Aのポイント
  • MSワードの文章をランダムに抽出して自動でメールを発信する方法について調査しています。
  • 常時起動しているパソコンを使用して、スケジュールされたタイミングでワード文書を自動的に抽出し、メールの本文として送信する方法を探しています。
  • VBAを使用することで、ワード文書からランダムに3つの文章を選んで、メールの本文にすることが可能なようです。近い動作をするフリーソフトや他の方法も教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

エクセルならVBAでなんとかなるかもしれませんね。 ま、ワードでも出来ないことはないですが、 多分、エクセルの方が楽です。 と言いつつ、 > メール発信をスケジュールするのは調べれば出来そうな気が とのことなので、私はワードからメールを送信する部分だけは 出来そうな気がしたので、楽しそうだったので少し考えてみました。 以下、ワードVBAで該当の文書(Project)の 「Microsoft Word Objects」の「ThisDocument」に書きます。 Sub SendRandMail() ' まず、文書を「段落」ごとに分割 Dim myStr As String Dim myArr As Variant   ' 文書全文をとりあえず格納   myStr = ActiveDocument.StoryRanges(wdMainTextStory).Text   ' 格納した全文を「段落」で分割して配列に格納   myArr = Split(myStr, vbCr) ' 「何番目の段落」を抜くか?のための乱数を発生 Dim myRands As Object   ' .NET Framework のクラス System.Random を使用して乱数発生   Set myRands = CreateObject("System.Random")     ' 乱数の範囲を「配列の開始位置(多分0)」から     '       「配列の要素の数」に設定しつつ、     ' その範囲の乱数を変数iに格納     i = myRands.Next_2(LBound(myArr), UBound(myArr)) ' メールを作って送信 ' 「Microsoft Outlook **** Object Library」を参照設定しておく Dim myOLApp As Object Dim myData As MailItem   ' なんとなく、前回エラー終了していると厄介なので   ' オブジェクト変数を解放しておく   Set myOLApp = Nothing   Set myData = Nothing   ' アウトルックアプリケーションをオブジェクト変数に格納   Set myOLApp = CreateObject("Outlook.Application")   ' 新規メールを作成してメイルアイテム変数に格納   Set myData = myOLApp.CreateItem(olMailItem)     ' 以下、メールのデータ各項目     myData.To = "mail@domain.com" ' 宛先のアドレス     ' myData.CC = "mail2.domain.net" ' 必要ならCC     myData.Subject = "Title" ' メールの件名     ' 変数からi(乱数)番目の文字列を取り出し、メールの本文に     myData.Body = myArr(i)     myData.Send ' メール送信   ' オブジェクト変数を解放して終了   Set myData = Nothing   Set myOLApp = Nothing End Sub なお、あくまでもEnter単独押下による 「段落」(いわゆるエンターキーのマークのアレ)での分割です。 Shift+Enterによる「段落が変わらない改行」     (下矢印↓が出るソレ)は対象にしていません。 違い?そこはご自身でお試しください。 > ランダムに3つ選んで すいません。見落としていました。 というか、面倒だったので手抜きしました。 でも > プログラムはVBAなら少々、というレベル とのことですし、軽く応用してくだされば出来るはず。 「i,j,k」辺りで変数を3個持たせて、 重複したら再度乱数を発生、程度で充分事足ります。 で、「Microsoft Outlook **** Object Library」を 参照設定しておくのをお忘れなくどうぞ。 ****はお使いのオフィスのバージョンによって変わります。 ちなみに、アウトルックに登録されている 「既定のアカウント」を使ってメール送信しますので、 コレが無いとどれだけ頑張っても送信されません。 こんな感じでどうかなぁ、と思うんですが。 もっと効率が良い方法があるかもしれませんが、 私にはコレが限界です(笑)。 あー、楽しかった。 ありがとうございます。

piyo-maru7
質問者

お礼

力作青写真をありがとうございます! Outlookを使うのは…業務用パソコンにならインストールしてあります。 段落の終わりにはPの左右反転した文字があります。実際の文章は本の題名や日付の段落(見出し1が本の題名、見出し2が日付)があるので、素材の下準備が必要そうです。 実際のプログラム部分については週末に挑戦してみたいです。ありがとうございました。

その他の回答 (1)

  • aokii
  • ベストアンサー率23% (5210/22062)
回答No.1
piyo-maru7
質問者

お礼

AutoHotKeyと同じような動作をするソフトでしょうか?それだと、ランダムに文章を抽出できませんよね。でもお答えありがとうございました。

関連するQ&A