アプリ版:「スタンプのみでお礼する」機能のリリースについて

こんにちわ。
マクロ素人です。
業務でマクロを使うことになったのですが、いくら調べても思うような情報にたどり着かず、皆さんのお力を拝借できればと思っています。

やりたいことは2つです。

#1:データのキーワード抽出
下記表の「B3」と「C3」(片方もしくは両方)にキーワードを入力し「抽出実行ボタン」を押すと別シートの「Project sheet」より対象となるデータが6列以降に全て抽出され一覧表示される。

#2:データの更新、上書保存
上記で抽出されたデータを修正した場合、「更新ボタン」を押すことによって、別シートの「Project sheet」の同列(元あった場所)に上書き保存される。

このようなことをするためにマクロを使いたく、マクロを組む方法をご教授いただけないでしょうか。
ど素人質問で大変恐縮ですが、どなたかアドバイスの程よろしくお願い致します。

*幾分マクロど素人なのもので細かく教えていただけると幸いです。

何卒よろしくお願い致します。

「EXCEL マクロで「キーワード入力での」の質問画像

A 回答 (5件)

図の字が読めません。


セルごとになんて書いてあるか書き込んでください。
    • good
    • 0
この回答へのお礼

GooUserラックさん
大変失礼しました。

図の字は下記の通りです。
「Project#」
「顧客名」
「営業担当」
「Application category」
「プロジェクト名」
「Family」
「型名」
「製品群」
「Capacity」
「MP」
「2016 Volume(K/Yr.)」
「2017 Volume(K/Yr.)」
「2018 Volume(K/Yr.)」
「Project status」
「Status」
「備考」です。

お忙しいとは思いますが、アドバイスを頂戴できると幸いです。
どうぞよろしくお願い致します。

お礼日時:2016/05/16 13:24

うーん。


初心者ですよね?
なかなか難しいですよ?

処理としては、
1.列の検索
2.ヒットした行数を取得
3.その行数のデータ(セルの塊)を貼り付け
4.次のセル検索(繰り返し)

3で貼り付けてますが、配列に格納して、まとめて貼り付ける方がいいでしょう。
理解できました?

更新の場合は、行数も一緒に取得していれば、その行数を元に貼り付ける、って感じ。
検索より楽ですね。

ちょっと理解できれば、そんなに難しくはないですよ。
    • good
    • 0
この回答へのお礼

くんこばさん
早速のありがとうございます。
そして貴重なお時間の中アドバイスをいただきありがとうございます。

Excelはそこそこ使えるのですが、マクロについては初心者も初心者です。
ご説明いただいた方法は理解はできたのですが、どうマクロを組めばいいかわからない状況です。
甘えついでに素人の私でもわかる様な良き参考書もしくはWebページなどありますでしょうか?

どうぞよろしくお願い致します。

お礼日時:2016/05/16 13:18

これでしたら、マクロなど使用せず「Project sheet」のタイトル部の「Project#」と「顧客名」にオートフィルターをかけるだけで実現しちゃいます。

    • good
    • 0
この回答へのお礼

ご返答ありがとうございます。
確かにそれが一番早いのですが、社内の要請でデータベース化する必要もあり上記のようなことがマクロでやりたいと考えている所存です。。。

もし、可能であれば引き続き良きアドバイスもしくはマクロそのものを教えていただけたら幸いです。
どうぞよろしくお願い致します。

お礼日時:2016/05/16 18:20

遅くなりました。


セルの検索方法
1.FIND関数
https://www.moug.net/tech/exvba/0050116.html
2.セルの比較
http://sp.okwave.jp/qa/q1780105.html

どの程度理解できます?
    • good
    • 0
この回答へのお礼

本当にご丁寧にありがとうございます。
私が素人なばかりにお手数をお掛けしてすいません。
理解はたぶん出来ていないと思います。(^^:
ただ、全てのデータが記載されている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.セルの比較」はどう使えばいいのかわかりませんでした。。。
貴重なお時間をいただいる上に甘えてしまって本当に申し訳ありませんが、認識が間違っていたら再度ご教授いただけると幸いです。

何卒よろしくお願い致します。

お礼日時:2016/05/17 15:05

遅くなりました。


こっちの方が分かりやすいですね。
http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/v …

要は、指定した列を上から順にIfを使って検索すればいいんです。
「検索について」
http://www.relief.jp/itnote/archives/excel-vba-i …
「Cells関数」
Cells(行,列)を使う。列を固定して、行を1増加させながら検索。検索にヒットしたら、その行番号から横一列のデータが取得できるわけです。そして、抽出データを反映させる時に行番号も保持しておくと。
更新するときは、その行番号を利用して上書きする。
こんな感じ。

いきなりすべて作りこまず、部分的に作っていきましょう。
    • good
    • 1
この回答へのお礼

なるほど!
ありがとうございます。
教えていただいたページを参考に勉強してみます。

何度も何度もご丁寧にありがとうございます!
次もまた教えていただけますか?
何卒よろしくお願い致します。

お礼日時:2016/05/18 23:04

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!