質問です。


ファイルの中に男性の文字列または女性の文字列が含まれて
いる場合に
フォルダの男性フォルダまたは女性フォルダに区別して
ファイルを移動できるマクロはできますか。

列はA列,B列の2列です。

ファイルの中のデータが
A列           B列
abc@docomo.ne.jp    男性
男性           abc@docomo.ne.jp

この場合は男性フォルダに移動させる


A列           B列
abc@docomo.ne.jp    女性
女性           abc@docomo.ne.jp

この場合は女性フォルダに移動させる

データは1行目からです
列の中は男性のみか女性のみで混在はありません
フォルダはあらかじめ女性および男性のフォルダを作っておいても
良くその時の自動で作っても良いです。

よろしくお願いします。  

回答の条件
  • 1人3回まで
  • 13歳以上
  • 登録:2011/05/11 14:20:38
  • 終了:2011/05/11 19:42:03

ベストアンサー

id:taknt No.2

きゃづみぃ回答回数13537ベストアンサー獲得回数11982011/05/11 14:48:12

ポイント60pt

マクロです。

女性のみ 移動です。

残ったのは 女性を含まないものです。

Sub main()
Dim p As String
Dim p2 As String
'対象フォルダを指定してください。
'このフォルダに この実行用のブックは 入れないでください。
    
        

p = "C:\test\"
p2 = "C:\test\女性\"     '女性を含んだファイルの移動先です。

'処理対象となる拡張子を指定して 呼び出します。
Call jikkou(p, p2, "xls")
Call jikkou(p, p2, "csv")

End Sub



Sub jikkou(p As String, p2 As String, s As String)
f = Dir(p & "*." & s, vbNormal)

Do While f <> ""
    Set w = Workbooks.Open(Filename:=p & f, UpdateLinks:=False, ReadOnly:=False)
    
    '処理対象は 1番目のシートのみ。
        
    g = 0
    Set trow = w.Sheets(1).Range("A:B").Find(What:="女性", LookIn:=xlValues)
    If trow Is Nothing Then g = 1

    w.Close
    
    If g = 0 Then
        Name p & f As p2 & f
    End If
    
    f = Dir
Loop


End Sub
id:inosisi4141

ありがとうございました。

男性版と女性版を作って試してみました。

上手くゆきました。

検索列をA列B列にC列を追加していただきたいのですが

よろしくお願いいたします。

たまに,,カンマがA列とB列の性別の間にあって検索できない

ファイルがありました。

よろしくお願いします。

2011/05/11 16:03:28

その他の回答(1件)

id:taknt No.1

きゃづみぃ回答回数13537ベストアンサー獲得回数11982011/05/11 14:27:13

ポイント10pt

http://desktop.google.com/ja/

Googleデスクトップを使う。

マクロじゃありませんが・・・。

マクロでも できますけどね、こちらのほうが速いかと。


Googleデスクトップで指定したフォルダの中で 「男性」とか検索すると 含んだファイルを抽出してくれますので それを 移動すればいいかと思います。

ただ この列だけとかの指定はできませんので その列以外に 含まれている場合も 抽出されてしまいますけどね。

id:inosisi4141

ありがとうございました。

すみません使い勝手が今一つわかりません

時間があるときに参考にしてみます。

2011/05/11 15:51:33
id:taknt No.2

きゃづみぃ回答回数13537ベストアンサー獲得回数11982011/05/11 14:48:12ここでベストアンサー

ポイント60pt

マクロです。

女性のみ 移動です。

残ったのは 女性を含まないものです。

Sub main()
Dim p As String
Dim p2 As String
'対象フォルダを指定してください。
'このフォルダに この実行用のブックは 入れないでください。
    
        

p = "C:\test\"
p2 = "C:\test\女性\"     '女性を含んだファイルの移動先です。

'処理対象となる拡張子を指定して 呼び出します。
Call jikkou(p, p2, "xls")
Call jikkou(p, p2, "csv")

End Sub



Sub jikkou(p As String, p2 As String, s As String)
f = Dir(p & "*." & s, vbNormal)

Do While f <> ""
    Set w = Workbooks.Open(Filename:=p & f, UpdateLinks:=False, ReadOnly:=False)
    
    '処理対象は 1番目のシートのみ。
        
    g = 0
    Set trow = w.Sheets(1).Range("A:B").Find(What:="女性", LookIn:=xlValues)
    If trow Is Nothing Then g = 1

    w.Close
    
    If g = 0 Then
        Name p & f As p2 & f
    End If
    
    f = Dir
Loop


End Sub
id:inosisi4141

ありがとうございました。

男性版と女性版を作って試してみました。

上手くゆきました。

検索列をA列B列にC列を追加していただきたいのですが

よろしくお願いいたします。

たまに,,カンマがA列とB列の性別の間にあって検索できない

ファイルがありました。

よろしくお願いします。

2011/05/11 16:03:28
  • id:taknt
    Set trow = w.Sheets(1).Range("A:B").Find(What:="女性", LookIn:=xlValues)


    Set trow = w.Sheets(1).Range("A:C").Find(What:="女性", LookIn:=xlValues)

    にすると A列からC列となります。

  • id:inosisi4141
    ありがとうございました。
    上手くゆきました・
    お手数おかけしました。

    素人ですから("A:B:C")として試してみたらだめでした。
    失礼しました。
  • id:inosisi4141
    ありがとうございました。
    上手くゆきました・
    お手数おかけしました。

    素人ですから("A:B:C")として試してみたらだめでした。
    失礼しました。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません