
複数のエクセルから表の情報を転記する作業をマクロ化したいと思っています。
コピー先となるエクセルは一つですが、コピー元となるのエクセルは複数あります。
参考に画像を添付しましたが別ブック1,2の情報をコピー先のエクセルに転記したいです。
そこで躓いているのが最終行の取得についてです。
下記のようなコード(一部省略していますが)を使って最終行の取得をして転記するところまではできているのですが、これだと当たり前ですが、別ブック1の情報はE,F列の空欄まで転記され、別ブック2だとC列以降の6行目にデータが入っていても転記されません。
ブック毎に最終行の列が毎回異なる場合はどのようなコードを使えばよいか、どなたか教えていただけないでしょうか。。。
Dim wb As Workbook(コピー元別ブック)
Dim sh As Worksheet(コピー先)
Dim c As Long, r As Long
Dim no As Variant
Dim rr As Long
・
・
・
With wb.Worksheets("シート1")
For c = 1 To .Cells(3, Columns.Count).End(xlToLeft).Column Step 2
no = .Cells(3, c).Value
For r = 4 To .Cells(Rows.Count, 2).End(xlUp).Row
rr = rr + 1
sh.Cells(rr, 1).Value = .Cells(r, c).Value
sh.Cells(rr, 2).Value = .Cells(r, c + 1).Value
sh.Cells(rr, 3).Value = no
Next r
Next c
End With
よろしくお願いいたします。

A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
連投すみません
気が付きました#3訂正します
.Cells(r, c).Valueについての条件ですね
For r = 4 To .Cells(Rows.Count, c).End(xlUp).Row
If .Cells(r, c).Value <> "" Then
rr = rr + 1
・
・
End If
Next r
確かめられないので間違っていたらごめんなさい
No.3
- 回答日時:
忘れていました
>別ブック1の情報はE,F列の空欄まで転記され
If .Cells(3, c).Value<>"" Then
no = .Cells(3, c).Value
・
・
Next r
End If
Next c
など
無駄な繰り返しをしない方法は考えてください
No.2
- 回答日時:
こんにちは
掲示のコードにおいて最も簡単な方法は
カラム方向が前段で取得されているようなので 変数cを使って
For r = 4 To .Cells(Rows.Count, c).End(xlUp).Row
とすれば良いです
最終行の取得方法は色々やり方がありますが参考程度で
対象の表組み(データ)で変わります
例の図での取得方法は ざっくり見て3通りですが
ヒントをマクロの記録を使って取得できる方法2通りを
1、Excelシート上でA1を選択してCtrl + Shift + Endキーを押す
Range("A1").Select
Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
Selectionは Range("A1")を指しますね
Rangeを見ると
Range("A1",ActiveCell.SpecialCells(xlLastCell)) が範囲ですね、つまり
ActiveCell.SpecialCells(xlLastCell)が最終セルを示しますので
ActiveCell.SpecialCells(xlLastCell).Row で最後の行数が得られます
しかし、値がなくなってしまうA列では希望の繰り返しにならないかも知れません
これについての対策も複数考えられますが、If セル<>"" Then などの条件設定で空白でないセルのみ処理するとか、繰り返し処理を抜けるとかできると思います
2、はA3を選択してCtrl + Shift + *キーを押す で記録したコードです
Range("A3").Select
Selection.CurrentRegion.Select
これはセル範囲を示していますので .Countなどを使う必要がありそうです
が自身で調べてみてください
その他にUsedRangeプロパティを使う方法などもあります2同様行番号を取得するには少し複雑になります
No.1
- 回答日時:
With wb.Worksheets("シート1")
・・・・
End With
の箇所をサブルーチン化する等してブック毎に繰り返すようにすれば良いかと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA 別ブックからの転記の高速化について VBA 別ブックからの転記の高速化についてご教授下さい。 19 2022/07/26 13:07
- Visual Basic(VBA) まとめシートから集計シートへA列のコードが一致したら1行コピーするマクロをネット上で見つけました。こ 1 2022/08/30 14:11
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Visual Basic(VBA) 特定の文字を含むシートだけマクロ処理をしたい 1 2023/05/22 01:43
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- Visual Basic(VBA) vbaを早くしたい 5 2022/09/09 10:58
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- Excel(エクセル) マクロで最終行から上に検索を逆にしたい 1 2022/05/17 18:27
- その他(Microsoft Office) マクロVBAについて 1 2022/09/06 18:12
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
このQ&Aを見た人はこんなQ&Aも見ています
-
一回も披露したことのない豆知識
あなたの「一回も披露したことのない豆知識」を教えてください。
-
ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
ゴリラ向け動画配信サイト「ウホウホ動画」にありがちなことを教えて下さい。
-
人生で一番思い出に残ってる靴
皆さんの人生で一番思い入れのある靴の話を伺ってみたいです。
-
チョコミントアイス
得意ですか?不得意ですか?できれば理由も教えてください。
-
準・究極の選択
「年収1000万円で一生カレーライス」か「年収180万円で毎日何でも食べ放題」
-
マクロ転記で指定した列の最終行に転記するコードを教えてください。
Excel(エクセル)
-
VBA別シートの最終行の次行へ転記したい。
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・昔のあなたへのアドバイス
- ・字面がカッコいい英単語
- ・許せない心理テスト
- ・歩いた自慢大会
- ・「I love you」 をかっこよく翻訳してみてください
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・はじめての旅行はどこに行きましたか?
- ・準・究極の選択
- ・この人頭いいなと思ったエピソード
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・【お題】甲子園での思い出の残し方
- ・【お題】動物のキャッチフレーズ
- ・人生で一番思い出に残ってる靴
- ・これ何て呼びますか Part2
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・あなたが好きな本屋さんを教えてください
- ・かっこよく答えてください!!
- ・一回も披露したことのない豆知識
- ・ショボ短歌会
- ・いちばん失敗した人決定戦
- ・性格悪い人が優勝
- ・最速怪談選手権
- ・限定しりとり
- ・性格いい人が優勝
- ・これ何て呼びますか
- ・チョコミントアイス
- ・単二電池
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・泣きながら食べたご飯の思い出
- ・一番好きなみそ汁の具材は?
- ・人生で一番お金がなかったとき
- ・カラオケの鉄板ソング
- ・自分用のお土産
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA シートをコピーする際に Co...
-
エクセルVBAで書式と値の貼付け...
-
Excel VBA インデックスが有効...
-
エクセル2007 開発タブを...
-
別ブックをダイアログボックス...
-
VBA 別ブックにワークシートを...
-
[マクロ]VBAで複数のブックの中...
-
VBA 別ブックからコピペしたい...
-
VBAで複数のブックを開かずに処...
-
Book間の移動
-
エクセルVBAが途中で止まります
-
2つのブックがあり、別bookシ...
-
マクロ初心者 デバッグの意味・...
-
VBA コードを実行すると画面が...
-
pythonでクラスで複数のメソッ...
-
転記VBA エラーが出ます
-
エクセルのマクロについて教え...
-
異なるブック間でのセル範囲の...
-
Excel (2013) VBAでもし最大表...
-
EXCEL VBAで作った ユーザーフ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
別ブックをダイアログボックス...
-
VBA シートをコピーする際に Co...
-
エクセルVBAが途中で止まります
-
VBA 別ブックからコピペしたい...
-
ワイルドカード「*」を使うとう...
-
VBAで別のブックにシートをコピ...
-
VBA コードを実行すると画面が...
-
【Excel VBA】書き込み先ブック...
-
Excelマクロ 該当する値の行番...
-
[Excel]ADODBでNull変換されて...
-
VBAで別ブックのシートを指定し...
-
【ExcelVBA】インデックスが有...
-
VBAで複数のブックを開かずに処...
-
【ExcelVBA】zip圧縮されたCSV...
-
【VBA】全シートの計算式を全て...
-
エクセルのマクロを使ってメー...
-
VBS Bookを閉じるコード
-
ユーザーフォームの切り替えに...
-
Excelのマクロコードについて教...
-
Excel2007VBAファイルの表示に...
おすすめ情報