質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

1回答

951閲覧

EXCELでブックからデータを抽出して別ブックの特定のセルに入力したいです。

ko1

総合スコア23

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2021/11/16 07:25

編集2021/11/17 05:03

お世話になります。
EXCELでブックからデータを抽出して別ブックの特定のセルに入力したいです。
売上データというEXCELがあり、B14・F14・B15・F15に数字が入力されています。

その数字を別のEXCEL(売上表)に自動的に反映させたいのですが、

売上表は一つですが、売上データのEXCELが大量にあります。

売上データにはI8に「名前」というセルがあり、売上表にもC列に「名前」が入力されています。

この売上データの「名前」を売上表のC列と照合して、
合っていればその名前(C列の複数行)を起点に

C列の名前セルから右に2列移動、下に1行移動した所にB14

C列の名前セルから右に3列移動、下に1行移動した所にF14

C列の名前セルから右に2列移動、下に3行移動した所にB15

C列の名前セルから右に3列移動、下に3行移動した所にF15

という形で数字を反映させたいと考えております。

VBAで作ってみようと思いましたが、名前を参照する所で躓いております。

お手数ですがご教示の程お願い致します。イメージ説明

2021年11月17日14時2分 画像追記

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

こんな感じでどうでしょうか。(修正:セル結合がある場合にOffsetがずれる事象に対処しました。)

VBA

1Sub sample() 2 Dim moto As Worksheet 3 Dim myName 4 Set moto = Workbooks("売上データ").Worksheets(1) 5 myName = moto.Range("I8").Value 6 7 Dim saki As Worksheet 8 Dim c As Range 9 Dim firstAddress As String 10 Set saki = Workbooks("売上表").Worksheets(1) 11 With saki.Range("C:C") 12 Set c = .Find(myName) 13 If Not c Is Nothing Then 14 firstAddress = c.Address 15 Do 16 c.Offset(, 2).Offset(1).Value = moto.Range("B14") 17 c.Offset(, 3).Offset(1).Value = moto.Range("F14") 18 c.Offset(, 2).Offset(3).Value = moto.Range("B15") 19 c.Offset(, 3).Offset(3).Value = moto.Range("F15") 20 Set c = .FindNext 21 Loop While Not c Is Nothing 22 End If 23 End With 24End Sub

投稿2021/11/16 09:16

編集2021/11/17 05:25
jinoji

総合スコア4592

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ko1

2021/11/17 03:32

ご回答ありがとうございます。 申し訳ありません。 Set moto = Workbooks("売上データ").Worksheets(1)の部分で 実行時エラー'9'; インデックスが有効ではありません。 とえらーが出てしまい名前など変えてみましたが直すことができませんでした。 お手数ではございますがご教示頂けますでしょうか。
jinoji

2021/11/17 03:40

売上データと売上表のどちらについても既に開いた状態で実行してください。 また、ファイル名の部分は、実際のファイル名にあわせて、たとえばWorkbooks("○○売上データ.xlsx") のようにしてください。
ko1

2021/11/17 05:02

迅速なご対応ありがとうございます。 両方のブックを開き実行できました。ありがとうございます。 ただ画像を追記させて頂きました通り、売上表に記載された時行が1~2段ずれており、 Offset(1, 2)の数字を変えて試してみましたが、思うどおりの所に入らない状況です。 何度も申し訳ありませんが、ご教示いただきますでしょうか。 よろしくお願い致します。
jinoji

2021/11/17 05:34

修正してみました。もう一度お確かめください。
ko1

2021/11/17 05:38

対処していただいたコードで実行できました! 何度も申し訳ありません! ありがとうございますm(__)m
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問