Excel マクロ VBA 別シートのセルを検索し、該当するセルの右にあるセルを入力させる方法
sheet『品名マスタ』にはA列に№、B列に商品名があります。sheet『一覧』のB列7行目以降に№が入っています。
※この№が重複することはありません。
『一覧』B列7行目以降にある№で『品名マスタ』A列の№を検索し、該当する『品名マスタ』B列の商品名を『一覧』のC列7行目に反映する。
『一覧』B列の№が空欄の場合は何も入れない。
という処理のボタンをつけたいのですが、どなたか詳しい方ご教授いただけないでしょうか?
(OS:Windows7 Excel:2010を使用しております。)
No.1ベストアンサー
- 回答日時:
こんにちは。
以下を試してみてください。
>処理のボタンをつけたい
マクロ名は任意です。Match関数を利用しています。
'//
Sub Button1_Click() '←ここは任意
Dim c, i
Dim Sh1 As Worksheet: Set Sh1 = Worksheets("一覧")
Dim Sh2 As Worksheet: Set Sh2 = Worksheets("品名マスタ")
With Sh1
For Each c In .Range("B7", .Cells(Rows.Count, 2).End(xlUp))
If IsNumeric(c.Value) Then
i = Application.Match(c.Value, Sh2.Columns(1), 0)
If IsNumeric(i) Then
c.Offset(, 1).Value = Sh2.Cells(i, 2).Value
End If
End If
Next c
End With
End Sub
-----------
この種の質問では定番ですが、イベント・ドリブン型マクロがありますので、それも加えておきます。一覧のB列に数字を入れると、自動的に商品名が出てきます。Vlook関数とは似ていますが、違うのは、数字を消すと、右隣のセルの内容も消えます。
'//シートモジュール(シートタブを右クリック、コードの表示)
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Variant '数値型ではありません
Dim buf As String
Dim Sh1 As Worksheet: Set Sh1 = Worksheets("品名マスタ")
If Target.Count > 1 Then Exit Sub
With Target
If .Column <> 2 Then Exit Sub
If .Row < 7 Then Exit Sub
'数字を削除すると、隣の文字が消える
If .Value = "" Then Target.Offset(, 1).ClearContents: Exit Sub
If IsNumeric(.Value) Then
i = Application.Match(.Value, Sh1.Columns(1), 0)
If IsNumeric(i) Then
buf = Sh1.Cells(i, 2).Value
Application.EnableEvents = False
.Offset(, 1).Value = buf
Application.EnableEvents = True
buf = ""
End If
End If
End With
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA 検索と入力 Excel ブック ぶぶぶ シート ししし 列V 検索対象の列です 最終行は、お 6 2023/05/17 01:40
- Excel(エクセル) 【Excel】指定のセル内容を基に別シートのセルを検索して選択する【VBA】 1 2022/06/16 16:16
- Excel(エクセル) エクセルの条件付き書式 個人シートを参照して集計シートに色付けしたい 1 2023/06/22 00:39
- Excel(エクセル) excelで検索した商品の画像(ネットワーク上の)を表示させたい。 3 2023/06/28 00:32
- Excel(エクセル) Excel>マクロ>特定のセルで同じ情報が登録されている行を1行にまとめたい(文字連結) 6 2023/01/05 16:30
- Excel(エクセル) IFERROR、SMALL関数について 2 2022/08/22 23:40
- Visual Basic(VBA) Excel VBA 最終行を取得しVlookup関数をコピーする方法をコーディングで教えてください。 3 2023/05/11 13:14
- Excel(エクセル) ある数値に対して、値を返す数式についてです 2 2022/09/13 22:06
- Excel(エクセル) 【条件付き書式】countifsで複数条件を満たしたセルを赤くする方法 2 2023/02/09 23:53
- Excel(エクセル) VLOOKUP が機能しない、その原因は何 ? 8 2022/10/19 12:06
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教える店舗&オフィスのセキュリティ対策術
中・小規模の店舗やオフィスのセキュリティセキュリティ対策について、プロにどう対策すべきか 何を注意すべきかを教えていただきました!
-
複数の条件に合う行番号を取得するには
その他(Microsoft Office)
-
vba 2つの条件が一致したらコピーして別シートに値のみ貼り付け
Visual Basic(VBA)
-
エクセル VBA find は別シートを検索できますでしょうか?
Excel(エクセル)
-
-
4
VBAでのMATCH関数の使用
Visual Basic(VBA)
-
5
【VBA】指定したセルと同じ値で、別シートにあるセルに移動するには?
Visual Basic(VBA)
-
6
【VBA】指定した検索条件に一致したら別シートに転記したい
Visual Basic(VBA)
-
7
別のシートから値を取得するとき
Visual Basic(VBA)
-
8
VBAを使って検索したセルをコピーして別の場所に貼り付ける。
Visual Basic(VBA)
-
9
完全一致したら代入するマクロを教えてください
Excel(エクセル)
-
10
【VBA】 別シートを検索し、一致した値より指定した数だけ移動したセルから下全てをコピペ
Excel(エクセル)
-
11
エクセルで空白セルを含む列の最終行の値を取得する式を教えてください
Excel(エクセル)
-
12
VBA 列全体を別シートの列と比較し、同じ値がある行の、右端に値をコピーする方法について
Excel(エクセル)
-
13
excel VBA 2つのシートの特定の列を比較して同じ値のセルがあったらその行を上書きしたい
Excel(エクセル)
-
14
エクセルVBA 別シートの複数のセルの値をコピーする方法
Excel(エクセル)
-
15
ExcelVBAを使って、値がある場合は作業を繰り返し実行するプログラムを作成したい。
Visual Basic(VBA)
-
16
VBA 空白行に転記する
Visual Basic(VBA)
-
17
【VBA】特定の値が入った行をコピーして別シートに貼り付ける方法をおしえていただきたいです。
Excel(エクセル)
-
18
【vba】指定範囲の中に任意の文字があるときの条件分岐
Excel(エクセル)
-
19
Enterキーでマクロを起動さす。
その他(ソフトウェア)
-
20
エクセルでエラーが出て困っています。
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Worksheets メソッドは失敗しま...
-
vba 2つの条件が一致したら...
-
Cellsのかっこの中はどっちが行...
-
VBA 何かしら文字が入っていたら
-
Excelで、あるセルの値に応じて...
-
VBAのFind関数で結合セルを検索...
-
B列の最終行までA列をオート...
-
VBAを使って検索したセルをコピ...
-
空白セルをとばして転記
-
マクロ 最終列をコピーして最終...
-
マクロについて。S列の途中から...
-
文字列の結合を空白行まで実行
-
C# dataGridViewの値だけクリア
-
エクセルVBA intersect colu...
-
VBAで文字列を結合
-
rowsとcolsの意味
-
VBAコンボボックスで選択した値...
-
DataGridViewに空白がある場合...
-
【VBA】2つのシートの値を比較...
-
Changeイベントでの複数セルの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Worksheets メソッドは失敗しま...
-
Excelで、あるセルの値に応じて...
-
B列の最終行までA列をオート...
-
vba 2つの条件が一致したら...
-
Cellsのかっこの中はどっちが行...
-
VBAを使って検索したセルをコピ...
-
文字列の結合を空白行まで実行
-
VBAのFind関数で結合セルを検索...
-
IIF関数の使い方
-
【VBA】2つのシートの値を比較...
-
マクロ 最終列をコピーして最終...
-
VBA 何かしら文字が入っていたら
-
Changeイベントでの複数セルの...
-
URLのリンク切れをマクロを使っ...
-
エクセルVBAにて =A1=B1とすれ...
-
VBAでのリスト不一致抽出について
-
データグリッドビューの一番最...
-
マクロについて。S列の途中から...
-
VBA UserFormからの転記で
-
targetをA列のセルに限定するに...
おすすめ情報