こんにちわ。
マクロ素人です。
業務でマクロを使うことになったのですが、いくら調べても思うような情報にたどり着かず、皆さんのお力を拝借できればと思っています。
やりたいことは2つです。
#1:データのキーワード抽出
下記表の「B3」と「C3」(片方もしくは両方)にキーワードを入力し「抽出実行ボタン」を押すと別シートの「Project sheet」より対象となるデータが6列以降に全て抽出され一覧表示される。
#2:データの更新、上書保存
上記で抽出されたデータを修正した場合、「更新ボタン」を押すことによって、別シートの「Project sheet」の同列(元あった場所)に上書き保存される。
このようなことをするためにマクロを使いたく、マクロを組む方法をご教授いただけないでしょうか。
ど素人質問で大変恐縮ですが、どなたかアドバイスの程よろしくお願い致します。
*幾分マクロど素人なのもので細かく教えていただけると幸いです。
何卒よろしくお願い致します。
No.5ベストアンサー
- 回答日時:
遅くなりました。
こっちの方が分かりやすいですね。
http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/v …
要は、指定した列を上から順にIfを使って検索すればいいんです。
「検索について」
http://www.relief.jp/itnote/archives/excel-vba-i …
「Cells関数」
Cells(行,列)を使う。列を固定して、行を1増加させながら検索。検索にヒットしたら、その行番号から横一列のデータが取得できるわけです。そして、抽出データを反映させる時に行番号も保持しておくと。
更新するときは、その行番号を利用して上書きする。
こんな感じ。
いきなりすべて作りこまず、部分的に作っていきましょう。
なるほど!
ありがとうございます。
教えていただいたページを参考に勉強してみます。
何度も何度もご丁寧にありがとうございます!
次もまた教えていただけますか?
何卒よろしくお願い致します。
No.4
- 回答日時:
遅くなりました。
セルの検索方法
1.FIND関数
https://www.moug.net/tech/exvba/0050116.html
2.セルの比較
http://sp.okwave.jp/qa/q1780105.html
どの程度理解できます?
本当にご丁寧にありがとうございます。
私が素人なばかりにお手数をお掛けしてすいません。
理解はたぶん出来ていないと思います。(^^:
ただ、全てのデータが記載されているSheetの上部に「1.FIN関数ページ」内にある下記のマクロを組み込んだボタンを作成すれば、いけるのかなと思いました。
-----
Sub Sample3()
Dim c As Range
Dim firstAddress As String
With Worksheets("DB").UsedRange.Columns(1)
Set c = .Find(What:=Range("B1").Value, _
LookIn:=xlValues, LookAt:=xlPart) '---(1)
'条件に当てはまるセルがあるかどうかを判定
If Not c Is Nothing Then
'最初のセルのアドレスを覚える
firstAddress = c.Address
'繰返し検索し、条件を満たすすべてのセルを検索する
Do
c.Resize(1, 3).Copy Destination:= _
Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
Set c = .FindNext(c) '----------------------(2)
If c Is Nothing Then Exit Do
Loop Until c.Address = firstAddress
End If
End With
End Sub
---------
「2.セルの比較」はどう使えばいいのかわかりませんでした。。。
貴重なお時間をいただいる上に甘えてしまって本当に申し訳ありませんが、認識が間違っていたら再度ご教授いただけると幸いです。
何卒よろしくお願い致します。
No.3
- 回答日時:
これでしたら、マクロなど使用せず「Project sheet」のタイトル部の「Project#」と「顧客名」にオートフィルターをかけるだけで実現しちゃいます。
ご返答ありがとうございます。
確かにそれが一番早いのですが、社内の要請でデータベース化する必要もあり上記のようなことがマクロでやりたいと考えている所存です。。。
もし、可能であれば引き続き良きアドバイスもしくはマクロそのものを教えていただけたら幸いです。
どうぞよろしくお願い致します。
No.2
- 回答日時:
うーん。
初心者ですよね?
なかなか難しいですよ?
処理としては、
1.列の検索
2.ヒットした行数を取得
3.その行数のデータ(セルの塊)を貼り付け
4.次のセル検索(繰り返し)
3で貼り付けてますが、配列に格納して、まとめて貼り付ける方がいいでしょう。
理解できました?
更新の場合は、行数も一緒に取得していれば、その行数を元に貼り付ける、って感じ。
検索より楽ですね。
ちょっと理解できれば、そんなに難しくはないですよ。
くんこばさん
早速のありがとうございます。
そして貴重なお時間の中アドバイスをいただきありがとうございます。
Excelはそこそこ使えるのですが、マクロについては初心者も初心者です。
ご説明いただいた方法は理解はできたのですが、どうマクロを組めばいいかわからない状況です。
甘えついでに素人の私でもわかる様な良き参考書もしくはWebページなどありますでしょうか?
どうぞよろしくお願い致します。
No.1
- 回答日時:
図の字が読めません。
セルごとになんて書いてあるか書き込んでください。
GooUserラックさん
大変失礼しました。
図の字は下記の通りです。
「Project#」
「顧客名」
「営業担当」
「Application category」
「プロジェクト名」
「Family」
「型名」
「製品群」
「Capacity」
「MP」
「2016 Volume(K/Yr.)」
「2017 Volume(K/Yr.)」
「2018 Volume(K/Yr.)」
「Project status」
「Status」
「備考」です。
お忙しいとは思いますが、アドバイスを頂戴できると幸いです。
どうぞよろしくお願い致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
条件に応じて特定の行を非表示...
-
Excel2007で、太字にした行のみ...
-
エクセル VBA 小数点を含む数字...
-
Excelでセル内の数式は残し値だ...
-
「マクロ」の足し算の式を教え...
-
Excel 2013 文字列内の文字重複...
-
エクセルで全ての数字間にカン...
-
VBA コピーを有効行までループ...
-
エクセルで、行ごとの並び替え...
-
Excel(VBA)データ入力に応じて...
-
wordのvbaでハイパーリンク設定...
-
Excelで連続印刷をするマクロ
-
エクセルの複数シートの保護を...
-
Accessのスプレッドシートエク...
-
複数のシートの同じセルに入力...
-
エクセルでファイルを開いたと...
-
エクセルのシート名をリスト化...
-
Excelのシートを、まとめて表示...
-
エクセルでファイル保存時に複...
-
別シートの最終行に貼り付けす...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
条件に応じて特定の行を非表示...
-
Excel2007で、太字にした行のみ...
-
Excelでセル内の数式は残し値だ...
-
「マクロ」の足し算の式を教え...
-
Excelで連続印刷をするマクロ
-
エクセル VBA 小数点を含む数字...
-
Excel(VBA)データ入力に応じて...
-
値貼り付けをしても書式も貼り...
-
エクセルで全ての数字間にカン...
-
Excel にて非表示行を探すワー...
-
Excel2007 セルを右方向に削除...
-
wordのvbaでハイパーリンク設定...
-
並べ替えのマクロで対象行の範...
-
エクセルで、行ごとの並び替え...
-
Excelで周期的に列を削除する方法
-
行の入れ替えってどうするの?
-
整数行を残し小数点の行を削除...
-
Excelで更新日を自動的に入れたい
-
エクセル2003でマクロをおこな...
-
yyyy/mm/ddの日付に一括変換す...
おすすめ情報