「まとめられたデータから必要な部分だけをコピーし、別のシートに張り付けたい。」
データ収集などの仕事を行っていると、このような状況によく出くわすのではないでしょうか?
この記事では、エクセルVBAを用いて、
データ探索⇒データコピー⇒シートを移動⇒所定の場所にコピーしたデータを張り付ける
という一連の作業を行う方法についてご紹介します。
日々の業務のなかで、これらを手作業で行っている人にとっては、参考になる内容だと思います。
実際の業務をイメージした例題を用い、画像つきで分かりやすく説明していきます。
是非最後までご覧ください。
そのまえに・・・
※VBAってなに?というは、
以下の記事を参考に、VBAが使える環境を整えておきましょう。
例題内容説明
まずはじめに今回用いる例題を確認しておきましょう。
今回は商品名と値段が書かれているシートから、目的の商品を探し出し、その商品の値段を別のシートにコピーする、という一連の流れを行ってみようと思います。
私が準備したのはこんな感じです。
Sheet1に商品と値段が記載されています。
Sheet2はこんな感じです。
このSheet2に記載されている商品の値段をSheet1から探しだし、Sheet2にコピーしてきます。
Sheet1に書いてある商品Eの値段は253なので最終的にSheet2のB2セルに253と記入されれば成功です。
マクロの記述
それでは早速マクロを記述していきましょう!!
まずは基本的なところからです。
以下のように開発タブを選択し、左側にあるVisual Basicを選択します。
開発タブの出し方については以下のリンクを参考にしてください。
【初心者用】エクセルマクロ(VBA)の始め方を詳細解説 – ヒガサラblog
すると以下のような画面が出てきます。
新しく出てきたWindowの左側にある以下のボタンをクリックします。
その後標準モジュールを選択します。
そうするとマクロを記述できるようになりますので、以下のようにマクロを記述します。
Sub データ探索()
'変数の型を宣言
Dim shohin As String
Dim nedan As Variant
Dim i As Integer
'Sheet2にいる状態からスタートする
Sheets("Sheet2").Select
Print '商品名をマクロに記録する
shohin = Cells(2, 1)
'Sheet1から商品名を探す
Sheets("Sheet1").Select
i = 0
Do Until Cells(2 + i, 1) = shohin
i = i + 1
Loop
'探した商品の値段をマクロに記録する
nedan = Cells(2 + i, 2)
'Sheet2に戻って記入する
Sheets("Sheet2").Select
Cells(2, 2) = nedan
End Sub
参考までに実際の処理の流れについても記載しておきましょう。
1.Sheet2に記載されている探したい商品名を覚えさせる
2.Sheet1に移動する
3.探したい商品名をDo loop を使って探す
4.商品の値段を覚えさせる
5.Sheet2に移動する
6.商品の値段を記入する
マクロの実行
記入が終わったらあとは以下の要領でマクロを実行するだけです!!
「いざ、実行!!」
結果確認
以下が実行結果です。
きちんとB2セルには253と記入されていますね。
A2セルを変更しても、きちんと対応した値段を探してきてくれますので、実際に変更し、確認してみてください。
おわりに
というわけで今回は、データ処理などに便利な、シート間でデータをやりとりする方法についてご紹介しました。
ぜひこのスキルをマスターし、日々の業務を効率化していきましょう。
このブログでは、VBAはもちろんその他のプログラミングスキルについても幅広くスキル紹介を行っています。
興味のある方は是非、他の記事も読んでみてくださいね。
また、このブログはブログランキングに参加しています。
応援してくれる人は、下のボタンをポチってもらえると嬉しいです!
以上です。それではまた!
コメント