• ベストアンサー

マクロで出来ますか?

SEIBETSU = 女性 AGE = 30代 AREA = 東京都 EMAIL = ○○○@○○.ne.jp このように送られてきたアンケートメールを 女性  30代 東京都 ○○○@○○.ne.jp とEXCELへ格納したいのですが・・・。 マクロで出来るでしょうか? お願いします。

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんばんは。 このマクロは、クリップボードで取得したものをワークシートに貼り付けるためのマクロです。 SEIBETSU = 女性 AGE = 30代 AREA = 東京都 EMAIL = xxx@xxxx.xx.xx 本来、このフォーマットを使いたいところですが、メールでは、さまざまなケースが考えられます。 例えば、 男性 20 代 (全角スペースが開いている) 大阪府 xxx@xxxx.xx.xx 女 性, 20 歳, 鹿児島県, xxxx@xxxx.xxx (20歳と入れて、なお、半角スペースが入っている) 相手の方が、フォームに従わない場合でも、ある程度の対応ができるように以下のマクロでは作られています。よほど、いいかげんな書き方をしていなければ、おそらく、以下のマクロで可能かと思います。 メール全体をCtrl + C で取っても、ただし、1つのメールで、一回だけです。 また、「東京」とか、「大阪」と書かれると、現在のマクロでは、地域は取れません。 なお、ショートカットは、Alt + c にしてありますので、ショートカットのみを実行してください。 '---------------------------------------------------------- '<標準モジュール> Sub ClipBoardPaste()   '要参照設定-Microsoft Forms 2.0 Object Library   Dim CB As New DataObject   '要参照設定 'Microsoft VBScript Regular Expression 5.5   Dim ObjRE As New RegExp   Dim buf As String   Dim buf2(0 To 3) As String   Dim MyPattern() As Variant   Dim p As Variant   Dim i As Integer      MyPattern() = Array("\.*([男女]性)", "\b(\d{1,3}[代年歳])", "\.*(.{2,3}[都道府県])\S*", "\b([\w\-\.]+@[\w\-\.]+)\b")   CB.GetFromClipboard   buf = CB.GetText   With ObjRE    .Global = True    .IgnoreCase = True    If Len(buf) > 0 Then      For Each p In MyPattern       .Pattern = CStr(p)       If .Test(buf) Then         buf2(i) = VBA.Trim((.Execute(buf)(0).SubMatches(0)))       End If       i = i + 1      Next p    End If   End With   If IsEmpty(ActiveCell.Value) Then    ActiveCell.Resize(, 4).Value = buf2()    buf = ""   Else    MsgBox "そこは貼り付けられません。", vbCritical   End If End Sub Sub ShortCutEntry() 'ショートカット設定 'Alt + C  Application.OnKey "%c", "ClipBoardPaste" End Sub

その他の回答 (1)

  • popesyu
  • ベストアンサー率36% (1782/4883)
回答No.1

出来る出来ないで言えば出来ます。 基本的にVBなどの貧弱な言語でもWindows上で可能なことは殆ど可能です。ただどれだけ面倒かとか手間がかかるのかということぐらいで。 でこのケースならメールソフトはOutlookを使うという前提なら割と簡単にできます。まぁマクロというよりはVBAによる開発みたいな勢いで作るだけの意欲があればの話しですが。 他のメールソフトならそのメールソフトの仕様次第ですが、一旦txtに書き出したりする必要があるでしょう。 参考 VBAでOutlookオブジェクトを使用する http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/modcore/html/deovrworkingwithmicrosoftoutlookobjects.asp

関連するQ&A

  • エクセル マクロ

    A列にエリア、B,C,Dにそのエリアの情報が格納されているエクセルファイルがあります。 エクセルマクロで、A列に入っているエリア(たとえば、東北、関東、関西、四国、九州など)ごとに、そのエリアの行をコピーして新規Bookを作成するというコードを書きたいのですが、どなたかご存知の方ご教授ください。

  • Excelの改行を消すマクロ

    Excel2000です。 セルの中の改行を消したいと思っています。 マクロを使いたいのですが、どうゆう マクロを書けばいいのか教えてください。 東京都 港区 を マクロを使って 東京都港区 にしたいのです。

  • エクセルのマクロ 【】の中だけ抽出〒と住所を分ける

    あるデータからコピペしてエクセルに並べ替えたいのですが 例えば 山田 太郎【やまだ たろう】 〒123-4567 東京都~ というデータをエクセルにペーストしました。 A2のセルには 山田 太郎【やまだ たろう】 A3のセルには 〒123-4567 東京都~ が入力されたとします。 それを B1とC1には 山田 太郎 D1には やまだ たろう E1には 123-4567 F1には 東京都~ を入れたいのですがマクロで出来る方法を教えて下さい。

  • Excelのマクロ『困ってます!』

    Excelで、以下のような機能を持ったマクロをつくりたいのですが、情けないのですが全くできません。 わかる方、どうかよろしくお願いいたします。 Sheet1のA1~D1の値(例では、東京、練馬区、○○、△△)を、 全て「含む」Sheet2のセルに目印をつけ(例は隣のセルに「○」と入力)し、 それが終わったらSheet1のA2~D2の値(例では、東京、練馬区、○○、□□)で・・・ の繰り返しです。 あくまでSheet1の値を全て「含む」ものが対象なので、Sheet2の5行目のように、 余計な値(例では★)が混じっているものも対象としたいです。 例: [Sheet1] 1 |東京都|練馬区|○○ |△△ | 2 |東京都|練馬区|○○ |□□ | 3 |東京都|目黒区|●● |■■ | 4 |埼玉県|川口市|◇◇ |×× | [Sheet2] 1 | |東京都港区・・・・ 2 | |東京都練馬区・・・・・ 3 | |東京都練馬区○○◎◎ 4 |○|東京都練馬区○○△△ 5 |○|東京都練馬区★○○★□□ 6 | |東京都練馬区★★□□ 7 |○|東京都目黒区●●■■ 8 |○|埼玉県川口市◇◇×× 9 | |神奈川県・・・・・

  • 日付の表示を変えるマクロ

    閲覧ありがとうございます。 Excelのマクロに関しての質問です。 今、テキストデータから「東京都・晴れ」を含む行をExcelファイルに抽出後、そのデータを日付別にふり分けるマクロを作っています。 そこで、テキストデータの日付の表示「11/8/2009」(2009年8月11日)や「8/9/2009」(2009年9月8日)を「2009/8/11」「2009/9/8」のように、年・月・日という表示に変えたいのですが、検索しても色々試しても良いマクロが浮かびません。 よろしければ素敵なマクロ、ご教授願います。 ※ちなみに、入力規則などを指定してもテキストからデータを引っ張ってきているため(?)か上手くいきません。

  • EXCELで行を検索選択し印刷するマクロを組みたい

    EXCELのマクロについて教えてください。 検索により選択した複数のセルを 行単位で印刷することはできるでしょうか? たとえば住所録を作ったとして どこかに「東京都」と入れ ボタンを押すと 東京都が含まれる複数の行を 1枚で印刷できるようにしたいです。 なお、検索については特定の列のみを 対象にします。 引っ越し前の住所が別の列に書かれていても これは無視するという感じです。 マクロについてはまったくの初心者です。 よろしくお願いいたします。

  • マクロを消すマクロは不可能?

    エクセルにてマクロを利用し作業しています。 メール等で送るときに手作業でマクロを消去してますが これを「マクロ」を使ってできないものでしょうか? 検索したのですが該当するものがないようなので 教えていただけますでしょうか?

  • エクセルのマクロについてです。

    すいません。教えてください エクセルのハイパーリンクを一括で登録したいです。 Dの列に品番がずらっとのっていて、その各行ごとのHの列にハイパーリンクを別のフォルダに格納されている、エクセルの同じ品番を検索して貼りたいです。マクロ初心者で大変なやんでます。よろしくお願いします。

  • エクセルのマクロをモジュールからオブジェクトへ移すと機能しないのですが

    マクロ自動記録で、下記のものを作り、MicrosoftExcelオブジェクトのエリアへ貼り付け、ボタンから実行するようにしましたが、Range命令で止まってしまいます。 命令語の格納エリア毎に使用可、不可の約束事があるのでしょうか。?    ActiveSheet.Unprotect    Range("E1:M23").Select    Selection.Copy しかたがないので、この命令群をモジュールに残して、オブジェクトにApplication.Runの命令を記述し、上記のマクロをサブプログラムとして利用しています。 エクセルを始めて1月の素人です。ご存じの方、ご教示おねがいします。

  • Excelファイルをマクロボタン一つでEメールで送ることはできませんか

    Excel2003を使用しています。 Excelのファイルをマクロボタン一つで特定の宛先にEメール(Outlook Express6.0)で送るマクロを作成したいのですが。 マクロの記録でメニューのファイル>送信>メールの宛先(添付ファイル)をやってみたのですが、宛先入力・送信は手動でやらないといけません。 これらを全てボタン一つでする方法はないでしょうか。

専門家に質問してみよう