teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

追記

2015/10/09 19:27

投稿

hirohiro
hirohiro

スコア2068

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

1

追記

2015/10/09 19:27

投稿

hirohiro
hirohiro

スコア2068

answer CHANGED
@@ -1,5 +1,6 @@
1
1
  マクロでも同じことできますが、VBAで書くまでもなくExcel機能のオートフィルタでできそうに思います。
2
2
  1行目を選択してオートフィルタを実行すれば、一行目の各列がプルダウンになり、その列に存在するデータが選択肢に並びます。
3
+ 選択してフィルタ条件を設定すれば、条件に一致しない行が非表示になります。
3
4
 
4
5
  VBAでやりたい場合もVBAからオートフィルタが設定できますので、それで実装するのが楽だと思います。
5
6
  [参考ページ](http://officetanaka.net/excel/vba/tips/tips155.htm)