[[20180311103320]] 『マクロで、取り出し』(く) ページの最後に飛ぶ

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

 

『マクロで、取り出し』(く)

sheet1・・・120件

 社員No   氏名  役職  勤続  生まれ  出身地
  1          あああ 会長  60   1987    石川県・・・
 2     いいい 副会長 55   1960    北海道・・・

と、こんな表があります。

これを、sheet2 へ
A1セル:出身地別社員一覧

A3:氏名 B3:出身地で、出身地が「北海道」の人をマクロで抽出
したいです。

 氏名  出身地
 いいい 北海道・・・ 

< 使用 Excel:Excel2013、使用 OS:Windows8 >


オートフィルタなどで抽出出きるとおもいますが、一般機能ではだめですか?
(カリーニン) 2018/03/11(日) 10:48

はい、マクロがよいです。
(く) 2018/03/11(日) 11:03

「石川県」の人を抽出することはないのですか

(マナ) 2018/03/11(日) 11:12


はい。
北海道のみです。

Sub 北海道出身()

    Dim i, g
    g = 4
    Worksheets("sheet2").Range("A1") = "出身地別社員一覧"
    Worksheets("sheet2").Range("A3") = "氏名"
    Worksheets("sheet2").Range("B3") = "出身地"

    For i = 2 To 121 'Cells(Rows.Count, "F").End(xlUp).Row
        If InStr(Cells(6, i), "北海道") <> 0 Then
            Worksheets("sheet2").Cells(1, g) = Worksheets("sheet1").Cells(2, i)
            Worksheets("sheet2").Cells(2, g) = Worksheets("sheet1").Cells(6, i)
            g = g + 1
        End If
    Next
End Sub

と、作成してみたのですが反応しませんでした。
(く) 2018/03/11(日) 11:13


Cells(行, 列)ですよ

(マナ) 2018/03/11(日) 11:18


マナ様

初歩的なミスでしたね。

ありがとうございました。
(く) 2018/03/11(日) 11:26


余計なことかもしれないですが、ちょっと気になったので投稿します。

そのやり方で不自由してないのであれば別にどうしてもってわけじゃないですが、カリーニンさんがアドバイスされているように、全行ループでチェックするより、オートフィルタ→コピペっていうマクロ作ったほうが、動作が早くていいような気がします。
(もこな2) 2018/03/11(日) 12:55


もこな2様

すいません、そのやり方が分からなかったので・・・。
(く) 2018/03/11(日) 15:10


手動でできることをどのように記述すればいいのかしらべるには、「マクロの記録」を使ってみるとよいです。
記録されたコードを見てどのようなメソッド(命令)を使っているのか調べて、そのメソッドがわからなければ、ネットで検索してみてっていうのを繰り返すと、ある程度のものができあがると思います。

それでも詰まってしまったら、その部分を提示して聞いてみると、あっというまに回答がかえってくるとおもいます。
(もこな2) 2018/03/12(月) 12:46


コメント返信:

[ 一覧(最新更新順) ]


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