
こんにちは。
業務でエクセルを使っていたのですが、
あまりに毎回時間がかかってしまうため、
VBAを利用して自動化したいと考えています。
まず、以下のようなシートが存在します。
A B C D E F G H
1
2 なす とまと 3 20
3 かぼちゃ えんどう 4 55
4 きゅうり りんご 2 82
5 とまと
6
7 みかん 3 10
8 にんじん ごぼう 9 21
9 はくさい うり 10 33
10 ねぎ
次のような作業を自動化したいのです。
1.A列に入っている野菜の名前と一致するものがF列にあるかどうか検索する。
2.もし一致するセルがあれば、そのセルとその横のセル、もう一つ横のセルをまとめてコピーしてそれぞれC、D、E列で、検索したもとの野菜と同じ行にペーストする。
3.この操作をA列にある全ての野菜について行い、
もし、F列に一致するものがなければ、CDE列は空欄にしておく。
4.A列一番下まで完了すれば作業終了。
以上です。
よろしくお願い致します。
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
VLOOKUP関数を利用していますか。
利用しているなら、「あまりに毎回時間がかかってしまうため」とはどんなことですか。あるいは不便がありますか。
もし使ってないなら、それでは、「「業務」でエクセルを使っている」とはいえないぐらいの、重要な関数です。使ってください。
またVBAでWorksheetFunctionでVLOOKUPを使うことができます。
For Nextで全件比較を繰り回すのは、好きじゃない。
Findというメソッドもありますが。
No.3
- 回答日時:
No2です。
先ほどのでも大丈夫とは思いますが、念のため一箇所だけ修正しました。(点が一個抜けていました)
Sub 照合貼付()
Dim gA As Integer 'A列最大行
Dim gF As Integer 'F列最大行
Dim i As Integer 'ループ用
Dim n As Integer 'ループ用
With ActiveSheet
gA = .Range("A65536").End(xlUp).Row
gF = .Range("F65536").End(xlUp).Row
For i = 1 To gF
For n = 1 To gA
If .Cells(n, "A") <> "" Then '空白でない場合
If .Cells(n, "A") = .Cells(i, "F") Then '同一データがあったら
.Cells(n, "A").Offset(0, 1).Resize(1, 3).Value = .Cells(i, "F").Resize(1, 3).Value '転記
End If
End If
Next
Next
End With
End Sub
No.2
- 回答日時:
> 2.もし一致するセルがあれば、そのセルとその横のセル、もう一つ横のセルをまとめてコピー
FGH列をC、D、E列にですね?野菜名が重複するようですが・・・。
一応これで動くと思います。
Sub 照合貼付()
Dim gA As Integer 'A列最大行
Dim gF As Integer 'F列最大行
Dim i As Integer 'ループ用
Dim n As Integer 'ループ用
With ActiveSheet
gA = .Range("A65536").End(xlUp).Row
gF = .Range("F65536").End(xlUp).Row
For i = 1 To gF
For n = 1 To gA
If .Cells(n, "A") <> "" Then '空白でない場合
If .Cells(n, "A") = Cells(i, "F") Then '同一データがあったら
.Cells(n, "A").Offset(0, 1).Resize(1, 3).Value = .Cells(i, "F").Resize(1, 3).Value '転記
End If
End If
Next
Next
End With
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 【Excel】指定のセル内容を基に別シートのセルを検索して選択する【VBA】
- VBA 特定の列に入っているテキストをコピペ
- VBA 検索と入力 Excel ブック ぶぶぶ シート ししし 列V 検索対象の列です 最終行は、お
- エクセルのマクロで対象ごとにシート分けしてその内容をセルに書き込みたい
- 関数EXACT(文字列,文字列)とexcelVBA
- vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使
- vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使
- シートが違う2枚のエクセルシートにある数値を別シートにコピーしたい(VBA?)
- エクセルのマクロでコピー後の貼り付け先を毎回指定したところにしたい
- Excel VBA 最終行を取得しVlookup関数をコピーする方法をコーディングで教えてください。
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教える店舗&オフィスのセキュリティ対策術
中・小規模の店舗やオフィスのセキュリティセキュリティ対策について、プロにどう対策すべきか 何を注意すべきかを教えていただきました!
-
VBAで検索して、行をコピー&追加したい
Excel(エクセル)
-
エクセルVBAで、条件に一致するセルへ移動
Excel(エクセル)
-
EXCEL VBAで文字列の検索とコピー
Excel(エクセル)
-
-
4
vba 2つの条件が一致したらコピーして別シートに値のみ貼り付け
Visual Basic(VBA)
-
5
【VBA】指定した検索条件に一致したら別シートに転記したい
Visual Basic(VBA)
-
6
エクセルVBAで5行目からオートフィルタモードに設定したいたい
Excel(エクセル)
-
7
VBA 条件が一致した場合のみコピーする
その他(ビジネス・キャリア)
-
8
VBA 見つからなかった時の処理
Excel(エクセル)
-
9
毎回変わる範囲を検索し、コピペするマクロについてご教示ください。
Excel(エクセル)
-
10
VBA Cのセルが空白でなかったら、Aのセルに順番に数値を入力
Visual Basic(VBA)
-
11
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
12
[初心者です]VBAで指定列からAを検索し、発見したら隣のセルに値0を入れるマクロ。
Access(アクセス)
-
13
エクセルVBAでパスの¥マークについて
Access(アクセス)
-
14
Exel VBA 別ブックから該当データを検索し、必要なデータを取得する方法について
Visual Basic(VBA)
-
15
【VBA】特定列に文字が入っていたらそのセル行をコピーしてマスターブックの同じ行に貼り付けたい
その他(Microsoft Office)
-
16
VBAで繰り返しコピーしながら下へ移動させる方法
Excel(エクセル)
-
17
エクセル VBA find は別シートを検索できますでしょうか?
Excel(エクセル)
-
18
excelのマクロで該当処理できなければ飛ばして進むにはどうすればよいのでしょうか
Visual Basic(VBA)
-
19
excel2010 マクロで複数シート検索し、一致した行をコピーしたい
Excel(エクセル)
-
20
VBAでファイルを開くときにファイル名でワイルドカードを使用したいです
その他(プログラミング・Web制作)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Worksheets メソッドは失敗しま...
-
Cellsのかっこの中はどっちが行...
-
VBAを使って検索したセルをコピ...
-
vba 2つの条件が一致したら...
-
文字列の結合を空白行まで実行
-
Excelで、あるセルの値に応じて...
-
マクロについて。S列の途中から...
-
マクロ 最終列をコピーして最終...
-
C# dataGridViewの値だけクリア
-
【VBA】2つのシートの値を比較...
-
VBAで文字列を結合
-
B列の最終行までA列をオート...
-
VBマクロ 色の付いたセルを...
-
空白セルをとばして転記
-
vbaでシートより100より大きい...
-
ExcelVBAでテキストルーレット...
-
IIF関数の使い方
-
Changeイベントでの複数セルの...
-
VBAにおけるRank関数について
-
☆エクセル マクロ 範囲の値を上...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
vba 2つの条件が一致したら...
-
Worksheets メソッドは失敗しま...
-
Cellsのかっこの中はどっちが行...
-
Excelで、あるセルの値に応じて...
-
VBAでセル検索から対象行のセル...
-
VBAを使って検索したセルをコピ...
-
VBAコンボボックスで選択した値...
-
B列の最終行までA列をオート...
-
Changeイベントでの複数セルの...
-
【VBA】2つのシートの値を比較...
-
IIF関数の使い方
-
VBAのFind関数で結合セルを検索...
-
文字列の結合を空白行まで実行
-
難問 VBA 今日の日付より前に対...
-
Excel VBA 他組み合わせと比較...
-
データグリッドビューの一番最...
-
マクロについて。S列の途中から...
-
マクロ 最終列をコピーして最終...
-
【Excel VBA】カンマと改行コー...
-
VBAで、特定の文字より後を削除...
おすすめ情報