[[20141020231213]] 『ガルーンのコメント投稿がコピーペーストされたエクセルの整理』(根気) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『ガルーンのコメント投稿がコピーペーストされたエクセルの整理』(根気)

 はじめまして。不躾ですが助けて下さい。
 退職した複数名が大事な社内回覧メールのコメントをエクセルにコピーして保存していた様で、
 これを整理して重要なコメントを拾い出す何とも言えない仕事をしています。
 残念ながら古すぎてガルーンの回覧メール自体は削除されています。

 内容は以下のとおりです。

 ・ Sheet1からSheet3まであり、それぞれSheet1がAさん、Sheet2がBさん、
   Sheet3がCさんがコピペしたシートです。

 ・ Sheet1からSheet3のコピペしたコメントは各人がコメントを改変することはないので、
   投稿番号が同じであれば同じ内容が残されています。

 ・ ただし、コピペの仕方は確認各様で、必ずA列にコメント番号が入る体裁になっていますが、
   ガルーンのコメント欄と同じ体裁だったり、テキストデータだったり、
   横列の1から始まってなかったりしますが、画像はどのSheetにも入ってます。

 ・ コピペしたコメントは以下のような感じで、いちシート50コメント位残されてます。

 ----------------------------------------------------------------------------
   2:山田太郎:2014/09/06(金) 20:13:39.99
   お疲れ様です。ご依頼の件、以下のとおりです。
   ………………………………………………………………………………
   ……………………………………………………………。

   8:高橋太郎:2014/09/15(金) 10:10:39.65
   お疲れ様です。ご依頼の件、以下のとおりです。
   ………………………………………………………………………………
   ………………………………………………………………………………
   ……………………………………………………………。
   Jpeg画像(←jpegはリンクではなくて画像が貼り付けられてます。)

   6:加藤太郎:2014/10/15(金) 10:11:39.65
   お疲れ様です。ご依頼の件、以下のとおりです。
   ………………………………………………………………………………
   ……………………………………………………………。
   http://・・・.co.jp

   99:高橋太郎:2014/09/15(金) 10:10:39.65
   お疲れ様です。ご依頼の件、以下のとおりです。
   ………………………………………………………………………………
   ………………………………………………………………………………
   ……………………………………………………………。
  Jpeg画像(←jpegはリンクではなくて画像が貼り付けられてます。)
   ………………………………………………………………………………

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

 このような状況で、以下の方法を教えて頂けませんか?

 1. Sheet1からSheet3までの投稿番号をSheet4のA列(SheetA)・B列(SheetB)・C列(SheetC)に表示させられませんか?
  (あとあと関数でA列・B列・C列を比較して重複しているものを重要なコメントとして拾いたいと思います。)

 2. 1.とは別で、できればですが、Sheet1からSheet3までを比較して、投稿番号で重複するコメントがあれば、
   Sheet3から当該重複するコメント番号のコメント全てをSheet5にコピーすることはできませんか?

 月曜日の深夜に申し訳ありませんが御支援いただきたく宜しくお願い致します。
 なお、当方エクセルの関数が若干わかり、VBAはコピペして何とか使える程度です。

< 使用 Excel:Excel2010、使用 OS:Windows7 >


・「投稿番号」とは、どの部分の事ですか? A列に入力されているのは「コメント番号」ですよね?
・メール内容の貼り付けであれば、1セルに全ての内容が含まれているのですか? 違うならばそのレイアウトを。
 (1メールが1行なのか、複数可変行なのか、等)
・集計案ですが、全角の「:」が複数含まれる行が先頭のように見えます。ここから名前や日時を分離。
 シートに転記後、日時をキーとしてソートしてはいかがですか?
(???) 2014/10/21(火) 08:51

 御返事有難うございます。

 ・「投稿番号」とは「コメント番号」のことです。

 ・メールコメントの張付けは1セルに全てではなく、Sheet1からSheet3のすべてが、
  メールコメントのひとつの行が横列の1セルを使ってまして、5行の文章であれば横5列使ってます。
  また、画像はメールコメントの5行目に掲載されていいれば、エクセルの横5列めに溢れるような形で貼り付けられています。

 ・頂いた案ですが、mid関数でコメント番号だけを抜き出して、エクセルの並べ替えで抽出しようと思ったのですが、
  上記のとおり、例えば2行目の先頭文字に「30万円」というような数字が記載される場合が多々ありますので、
  単に並べ替えるだけですと上手く参りません・・・。
(根気) 2014/10/21(火) 10:27

レイアウトがバラバラのようなので、とりあえずくっつけてバラす例なぞ。
先の案のとおり、全角の「:」を手掛かりにしているので、もし番号だけA列にしてこれを消している場合、手作業で付加しておいてください。
(片っ端からくっつけるので、B列を挿入し、必要な分だけここにセミコロンを入力でもOK)

なお、画像データは無視しています。
(貼ってあるオブジェクト情報と、セルの座標を比較すれば関連付けできそうですが、かなり面倒なので)

 Sub test()
    Dim i As Long
    Dim j As Long
    Dim k As Long
    Dim iR As Long
    Dim cw As String
    Dim vw1 As Variant
    Dim vw2 As Variant

    For i = 1 To 3
        With Sheets(Array("Sheet1", "Sheet2", "Sheet3")(i - 1))
            cw = ""
            For j = 1 To .Cells(.Rows.Count, "A").End(xlUp).Row
                For k = 1 To .Cells(j, .Columns.Count).End(xlToLeft).Column
                    cw = cw & .Cells(j, k).Value
                Next k
                cw = cw & vbLf
            Next j
        End With

        vw1 = Split(cw, vbLf)
        cw = ""
        For j = 0 To UBound(vw1)
            vw2 = Split(vw1(j), ":")
            If 2 <= UBound(vw2) Then
                If cw <> "" Then
                    Cells(iR, "D").Value = cw
                End If
                iR = iR + 1
                Cells(iR, "A").Value = Trim(vw2(0))
                Cells(iR, "B").Value = Trim(vw2(1))
                Cells(iR, "C").Value = Trim(vw2(2))
                cw = vw1(j)
            Else
                cw = cw & vbLf & vw1(j)
            End If
        Next j

        If cw <> "" Then
            Cells(iR, "D").Value = cw
        End If
    Next i

    Sort.SortFields.Clear
    Sort.SortFields.Add Key:=Range("C1:C" & Rows.Count), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveSheet.Sort
        .SetRange Range("A1:D" & iR)
        .Header = xlNo
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
End Sub
(???) 2014/10/21(火) 10:35

携帯からです。すみません。出発前に試しましたが、a列が崩れるだけで上手くできませんでした。
私の条件が煩雑だからと思います。
ですので、特定のSheetのコメント番号を抽出するだけでもお願いできないでしょうか?
たとえば、b列にa列のコメント番号のみが抽出されるなどが思い描くところです。
(根気) 2014/10/21(火) 12:39

A列が崩れるって、Sheet1のシートモジュールにでも貼りませんでしたか?
結果をSheet4に出力なのだから、Sheet4のモジュールに貼ってから動かしてみてください。

コメント番号だけ抜くといっても、それはA列に必ず番号があるとか、先頭は必ず数字とか、固定条件が必要です。
(そういう条件なら、Val関数を使うだけ)
(???) 2014/10/21(火) 12:48


できました。失礼をしました。
事務軽減になります。
ありがとうございました。
(根気) 2014/10/21(火) 13:50

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.