回答編集履歴

2

追記

2015/10/09 19:27

投稿

hirohiro
hirohiro

スコア2068

test CHANGED
@@ -1,3 +1,45 @@
1
+ ###追記
2
+
3
+ 要望を読み間違えていたようですので追記します。
4
+
5
+ **すること:**任意数指定したキーワードの列を元データから抜き出して別シートにコピーする
6
+
7
+ **手順:**
8
+
9
+ 1. キーワードを一つ読み出す
10
+
11
+ 2. [1]のキーワードを元データのタイトル行から検索
12
+
13
+ 3. 見つけた列を全てRangeに収める
14
+
15
+ 4. [3]をコピーし対象シートにペースト
16
+
17
+ 5. 1-4をキーワード分繰り替えす。
18
+
19
+
20
+
21
+ 行のデータ先頭からデータ端までをRangeに指定  [参考](http://www.officepro.jp/excelvba/cell_range/index5.html)
22
+
23
+ Set ttl = Range("A1").End(xlToRight)
24
+
25
+ キーワード検索 [参考](http://officetanaka.net/excel/vba/tips/tips127.htm)
26
+
27
+ Set Trg = ttl.Find(What:="年賀状")
28
+
29
+ 見つけた列の末尾まで範囲を拡張
30
+
31
+ Set Trg = Trg.End(xlDown)
32
+
33
+ これをコピーして対象シートの一列目にペースト
34
+
35
+
36
+
37
+ 実行環境が無く試せないので細かい所がうまく行くか不安ですが、こんな感じでどうでしょう?
38
+
39
+
40
+
41
+ ###最初に投稿したもの
42
+
1
43
  マクロでも同じことできますが、VBAで書くまでもなくExcel機能のオートフィルタでできそうに思います。
2
44
 
3
45
  1行目を選択してオートフィルタを実行すれば、一行目の各列がプルダウンになり、その列に存在するデータが選択肢に並びます。

1

追記

2015/10/09 19:27

投稿

hirohiro
hirohiro

スコア2068

test CHANGED
@@ -1,6 +1,8 @@
1
1
  マクロでも同じことできますが、VBAで書くまでもなくExcel機能のオートフィルタでできそうに思います。
2
2
 
3
3
  1行目を選択してオートフィルタを実行すれば、一行目の各列がプルダウンになり、その列に存在するデータが選択肢に並びます。
4
+
5
+ 選択してフィルタ条件を設定すれば、条件に一致しない行が非表示になります。
4
6
 
5
7
 
6
8