いつもお世話になっております。
この度、下記の操作の自動化についてご教示をいただきたく質問させていただきました。
自動化したい処理内容は下記の添付画像を例にご説明いたします。
B列3行目より下記には各機材名が入力されており、黄色で示しております【VAIO】の文字に一致した場合、C1~F1(※オレンジ色で示しましたA・B・C・D(※ここには関数が入力されています。)のセルのデータを、離れた位置にございます【VAIO】が入力されている行の、H5、I5、J5、K5セルに貼り付けたい処理の内容となります。
どうぞよろしくお願いいたします。
No.2ベストアンサー
- 回答日時:
こんな感じでしょうか?
Sub megu()
Dim rr As Range
Dim rf As Range
Set rr = Range("B3", Cells(Rows.Count, "B").End(xlUp))
Set rf = rr.Find("VAIO", , xlValues, xlWhole)
If rf Is Nothing Then
MsgBox "検索値は見つかりませんでした"
Set rr = Nothing
Exit Sub
End If
Range("C1:F1").Copy
rf.Offset(, 6).PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
Set rr = Nothing
Set rf = Nothing
End Sub
後々は
>Set rf = rr.Find("VAIO", , xlValues, xlWhole)
の "VAIO" の所を Range("B1").Value に変更してみて下さい。
めぐみん様、VBAの構築ありがとうございます。
こちらで理想の処理ができました!
後々の変更箇所のご提示もありがとうございます。
大切に活用させていただきます。
ありがとうございました。
No.3
- 回答日時:
こんにちは
>自動化したい処理内容
「自動化」というのが、いちいちマクロを実行する操作をしなくても、入力をした際に自動的に実行されるという意味と解釈しました。
当該シートの「シートモジュール」に以下を記述ではいかがでしょうか。
(シートタブを右クリックし「コードの表示」を選択した際に表示されるエディタ画面に記述)
Private Sub Worksheet_Change(ByVal Target As Range)
Dim c
If Intersect(Target, Columns(2)) Is Nothing Then Exit Sub
Application.EnableEvents = False
For Each c In Intersect(Target, Columns(2)).Cells
If c.Value = "VAIO" Then
Cells(c.Row, 8).Resize(, 4).Value = Range("C1:F1").Value
End If
Next c
Application.EnableEvents = True
End Sub
※ コード設定した以降の操作に対して有効になります。
(それ以前に入力済みのセルに対しては実行されません)
fujillin様、回答に重ねVBAの構築ありがとうございます。
Changeイベントを組むことでこの様に自動化することができるのですね。
こちらも大切に活用させていただきます。
ありがとうございました。
No.1
- 回答日時:
>【VAIO】の文字に一致した場合
B列の機材名が『何と』一致した場合なのでしょうか?
VAIO 固定ではないですよね?
例えばセルB1にその機材名が表示されるようになっている or 入力するようになっているとか?
めぐみん様、いつもお世話になっております。
回答ありがとうございます。
私が将来イメージしております処理の内容と重なっており驚いております。
めぐみん様が仰る通り、例えば(機材管理表)という別シートを作成。
今後はこの表とB1セルに関数で機材名を反映させ、B1セルの機材名に一致した場合にデータを反映させたいと考えておりました。
ただ現状、別シートの完成が今しばらくかかるので今回はVAIOに一致した場合のみを処理内容としたいです。
よろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ExcelVBAの複数指定範囲の構文 2 2022/05/26 22:39
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) 指定した文字から指定した文字のスペースまでを削除するVBAの構文について 6 2022/07/24 22:20
- Excel(エクセル) エクセルで”入力シート”の文字書式の変更を”出力シート”で同じ文字書式で印刷したいです。VBA希望 4 2023/04/24 11:07
- Excel(エクセル) エクセルで隣(右or左)のセルと同じ文字色にしたい 2 2022/12/13 11:33
- Visual Basic(VBA) 複数指定セルの可視セルのみを別シートに転記するVBAについて 2 2022/05/27 21:19
- Excel(エクセル) 【VBA】指定フォルダに格納中のテキストファイルをエクセルで処理し結果のエクセルを新規フォルダに保存 1 2022/03/25 14:19
- Excel(エクセル) 条件に合った数値の合計を表示させたい関数と条件指定の方法 3 2023/05/13 16:07
- Excel(エクセル) 条件付き書式 別のシートで色付けされたセルデータの転記漏れを防ぐ書式を入れたい 4 2022/04/22 06:36
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ExcelVBAを使って、値...
-
特定のセルが空白だったら、そ...
-
EXCELで変数をペーストしたい
-
Excel VBA、 別ブックの最終行...
-
i=cells(Rows.Count, 1)とi=cel...
-
Excelで指定した日付から過去の...
-
TODAY()で設定したセルの日付...
-
【Excel】指定したセルの名前で...
-
screenupdatingが機能しなくて...
-
エクセルvba:自己セルの情報取...
-
【Excel VBA】指定行以降をクリ...
-
Excel VBAで比較して数値があっ...
-
連続する複数のセル値がすべて0...
-
DataGridViewの各セル幅を自由...
-
実行時エラー438 オブジェクト...
-
Excelのハイパーリンクにマクロ...
-
3桁または4桁の数値を時刻に...
-
特定の文字を条件に行挿入とそ...
-
VBからEXCELのセルの値を取得す...
-
クリックしたセルに色を付けるV...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ExcelVBAを使って、値...
-
特定のセルが空白だったら、そ...
-
i=cells(Rows.Count, 1)とi=cel...
-
【Excel VBA】指定行以降をクリ...
-
Excelで指定した日付から過去の...
-
【Excel】指定したセルの名前で...
-
Excel vbaで特定の文字以外が入...
-
特定の文字を条件に行挿入とそ...
-
TODAY()で設定したセルの日付...
-
screenupdatingが機能しなくて...
-
Excelのプルダウンで2列分の情...
-
EXCELで変数をペーストしたい
-
連続する複数のセル値がすべて0...
-
Excel VBA、 別ブックの最終行...
-
VBAを使用した時間管理
-
エクセルVBAでコピーして順...
-
セル色なしの行一括削除
-
【EXCEL VBA】Range("A:A").Fi...
-
VBA コピーして次の値まで貼り...
-
VBA初心者です。結合セルを保持...
おすすめ情報