
エクセルで、データの右端の列に表示されている、別のシートからVLOOKUPで返した数値の行数を、数値が表示された行をコピーしてそのすぐ下に挿入し、更に、コピーした行の指定したセルの値を【10倍してプラス1】した数値をデータの一番右の列に表示させ、挿入した行だけにその連続した値を表示させたデータを別シートに作成することは可能でしょうか?
添付しました写真の【Q】列に表示された値の行数だけ、コピーしてすぐ下に挿入(#N/Aは0とする)し、【I】列『商品コード』の数値×10+1の数値を、コピー元の行の【S】列に表示、挿入行にのみそれぞれにその数値の連続した値を表示させたデータを、シート2(補足で添付致します)に表示させたいのです。(4行目が項目、データは5行目からです。)
セットコードで入力されたデータを、セットの内訳をすべて表示させたデータにする事が目的ですが、データの量が1000件近くなるかもしれず、手作業では無理なため試行錯誤しておりますがどうしてもうまくいきません。
挿入した行へ、セット内訳の商品コード・商品名・価格等を、また別シートからVLOOKUPで返す予定です。
VBAにお詳しい方、どうかどうか宜しくお願い致します。


No.9ベストアンサー
- 回答日時:
以下のマクロを標準モジュールに登録してください。
Sheet2の挿入&コピーを行います。予めSheet2に関数を埋め込むということなので、
Sheet2のT列より右側は一切マクロでは更新しません。
Sheet2の4行目以降のA列からS列はSheet1の内容がコピーされるか、マクロにより内容が設定されるため、そこに関数を埋め込んではいけません。
----------------------------------------------------------
Option Explicit
Public Sub 挿入コピー()
Dim maxrow1 As Long
Dim maxrow2 As Long
Dim row1 As Long
Dim row2 As Long
Dim i As Long
Dim val As Variant
Dim copy_count As Long
Dim rng1 As Variant
Dim rng2 As Variant
Dim sh1 As Worksheet
Dim sh2 As Worksheet
Set sh1 = Worksheets("Sheet1")
Set sh2 = Worksheets("Sheet2")
maxrow1 = sh1.Cells(Rows.Count, 1).End(xlUp).Row 'sheet1の最大行取得
maxrow2 = sh2.Cells(Rows.Count, 1).End(xlUp).Row 'sheet2の最大行取得
sh2.Range("A4:R4").Value = sh1.Range("A4:R4").Value
If maxrow2 > 4 Then
sh2.Range("A5:S" & maxrow2).ClearContents
End If
row2 = 5
For row1 = 5 To maxrow1
val = sh1.Cells(row1, "Q").Value
If IsNumeric(val) = False Then
copy_count = 0
Else
copy_count = val
End If
rng1 = "A" & row1 & ":R" & row1
rng2 = "A" & row2 & ":R" & row2
sh2.Range(rng2).Value = sh1.Range(rng1).Value
row2 = row2 + 1
For i = 1 To copy_count
rng2 = "A" & row2 & ":R" & row2
sh2.Range(rng2).Value = sh1.Range(rng1).Value
sh2.Cells(row2, "S").Value = sh1.Cells(row1, "I").Value * 10 + i
row2 = row2 + 1
Next
Next
MsgBox ("完了")
End Sub
年末からかかりっきりで頭を悩ませておりましたが、瞬時に希望通りのデータが表示されました!!本当に助かりました!!おかげ様で明日からスムーズに作業を進められそうです。tatsu99様、本当に有難うございました!!!
No.10
- 回答日時:
いろいろなわかりやすいサイトをご紹介くださり、得意ではないので大変助かります。勉強に役立てて、今年はステップアップしたと思います。ご親切に有難うございました!

No.7
- 回答日時:
補足要求です。
①コピーはSheet1のA~R列をそのままSheet2のA~R列へコピーすれば良いのですか?
(行の追加は②で行います。Q列の値がN/Aの場合でも行う1行分のコピーについてです)
②行をQ列の値の分、追加する時ですが、(例としてQ列の値が6なら)
Sheet1のA~R列をそのままSheet2のA~R列へコピーする。(6回行う)
Sheet2のS列は、Aheet1のI列×10+Nとする。
(Nは1回目のコピーの時1、2回目のコピーの時2、・・・6回目のコピーの時6とする)
上記①②の考え方であってますか。
③Sheet1のQ列の値が10以上になることはあるのですか?
質問の意図は、もし、あるなら(Q列の値=12とすると)、
I列のコードが100の時、S列へ設定する12回目の値は、1000+12=1012になる
がそれで良いのかということです。
④「挿入した行へ、セット内訳の商品コード・商品名・価格等を、また別シートからVLOOKUPで返す予定です。」とあるが、
これは、VBAでSheet2を作成したあとで、あなたが、Sheet2へVLOOKUPの関数式を埋め込むということでしょうか。
もし、そうなら、その作業は結構大変かと思いますが・・・・
tatsu99様、有難うございます。①、②ともおっしゃる通りです。②についてはsheet1のQ列の値が6なら、6行挿入してsheet2では同じデータの行が7行になります。
③は10以上にはなりません。(最大で7です。)
④は、sheet2に表示されたデータの右端にVLOOKUPでS列の値によってセット内訳(商品コード・商品名・価格・数量・小計)のデータが返るように関数を入れておき、sheet3に全て値貼付け、A~Oまでのデータに商品コード・商品名・価格・数量・小計の値が返った部分だけコピペするつもりでおります。(セット数は1セットに限られるかと見込まれるため、事前に受注データをフィルターで数量チェックすれば数量・小計もコピペできるかと思いました。)
7日から作業を開始しますため、私の知識ではこれ以上は時間的に準備できず、行の自動挿入ができれば大変助かるところです。。
No.6
- 回答日時:
なら、
Excelには、
行動を 記録し、
マクロ化する、
機能が あるから、
Excel自身に、
教えて貰えば いいよ。
記録する
https://www.forguncy.com/blog/20170726_macro
此 読んでね、
参考図書
http://www.asahi-net.or.jp/~ef2o-inue/menu/menu0 …
nouble1様、とてもわかりやすいサイトをお教えくださり、有難うございます!じっくり勉強して、今年はきちんと身に着けたいと思います。
No.5
- 回答日時:
No.3
- 回答日時:
再帰的に なりそうですね、
挿入する列にも、
値記載が あった場合、
どう扱うのですか?
S列は フィルさせれば、
十分でしょう、
VLOOKUPは もう出来るのですよね?
Evaluateか、WorksheetFunctionを、
持ちいれば、
問題無い事と 思います。
コピ等は 言及するまでも、
ないですよね?
演算も 出来ますよね?
後は、
組み立てるだけでは?
ご回答有難うございます。S列へは、コピーした行と挿入された行にのみ連続の値を表示させたく、その値から、セットの内訳データをコピー行と挿入行のみにVLOOKUPで返せればと思いました。ご回答くださった方法でもやってみます。感謝致します。
No.1
- 回答日時:
誰もが 答える前に、
お伺いします、
貴方は 其のシステムに、
VBAを 入れる事を、
許されますか?
尚、
許可無く 入れた場合、
解雇理由として、
必要十分な程の 重要案件なのですが。
何故なら、
悪意のあるプログラムも、
しばしば、
VBAの 形を、
取り得るからで、
其れ等は、
アンチウイルスソフトに、
掛からない事が 多く、
故に、
悪質に 見られる訳です。
No.1の方、質問をお読みくださり有難うございます。会社の事務作業で毎日の受注内容の取りまとめがあり、複雑な作業が発生し作業時間も限られています為、VBAの知識がなければこなせない状況で、努力しましたが時間が足りません。どのように作業するかは制限なく任されております。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) VLOOKUP が機能しない、その原因は何 ? 8 2022/10/19 12:06
- Excel(エクセル) Googleスプレッドシートで、あるセルの値に応じて行を自動挿入したい 急いでいます! くわしい方、 3 2023/03/06 19:05
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) Excel vbaについて知恵もしくは、コード教えて下さいm(__)m ① 表にあるデータをコピー、 2 2022/09/01 23:57
- Excel(エクセル) 【Excel関数】値が合致するセルの隣のセルを表示させたい 8 2022/10/12 17:44
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/03 11:27
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/03 12:30
- Visual Basic(VBA) 【VBA】データを入力後に,同一シート内に履歴として転記するVBAコードを教えていただきたいです。 3 2022/11/16 01:37
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- Visual Basic(VBA) A列にある値をB列・C列にVBAで切り出し 3 2022/04/09 19:20
このQ&Aを見た人はこんなQ&Aも見ています
-
Excelで、あるセルの値に応じて行を自動挿入したい
Visual Basic(VBA)
-
Excel で行を指定回数だけコピーしたい
Excel(エクセル)
-
エクセルでセルの値分の個数の文字列を自動で入れたい
Excel(エクセル)
-
-
4
excelで任意のセルを指定回数コピーペーストする方法を教えてください
Excel(エクセル)
-
5
エクセルでの行数・列数を指定しての一括コピーの方法
Excel(エクセル)
-
6
Excel VBA 複数行を数の分だけ挿入したい
Visual Basic(VBA)
-
7
Excel 指定行までコピーをおこないたい
その他(Microsoft Office)
-
8
エクセルで指定回数だけ別セルに繰り返す方法
Excel(エクセル)
-
9
エクセル マクロで数値が変った時行挿入できますか
Excel(エクセル)
-
10
特定の条件の時に行を挿入したい
Excel(エクセル)
-
11
excelで、セル内に文字が入力される毎に行が自動挿入される仕組みを作りたいのですが…
Excel(エクセル)
-
12
Excelで行ごとコピー、同じ行を3行にしたい
Excel(エクセル)
-
13
【VBA】特定の値が入った行をコピーして別シートに貼り付ける方法をおしえていただきたいです。
Excel(エクセル)
-
14
VBAで条件が一致する行をコピーしその1つ下へ挿入
Excel(エクセル)
-
15
特定のセルにある数のぶんだけ、自動で列をふやしたい
Excel(エクセル)
-
16
Excelのシートにある1行のデータを複数行に分割したい
Excel(エクセル)
-
17
Excelで1つのセルを指定回数だけコピーしたい
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで空白以外のセルの値...
-
EXCELにて複数列を同条件(色)...
-
エクセル VBA 指定の範囲内をコ...
-
一行おきにコピーするマクロが...
-
"=LEFT(RC[-13],5)"を書き換えたい
-
エクセルの関数について(日付で...
-
Excel 条件に従いセル移動するには
-
シート保護の状態で行の追加を...
-
エクセルで行挿入した際、自動...
-
Excelの非表示列も含めてコピー
-
エクセルVBA 複数列をコピーす...
-
エクセル マクロ 貼り付け先が...
-
2つのセルの入力忘れ防止の警告...
-
【Excel-マクロ】グループとア...
-
特定の桁数を抽出
-
マクロでの条件判断について
-
2つのセルを交互に切り替え表示...
-
エクセルで反転コピー
-
列を削除すると、セルに黄色の...
-
マクロでの可視セルのコピー&...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXCELにて複数列を同条件(色)...
-
シート保護の状態で行の追加を...
-
エクセルで表示された値だけ行...
-
Excelの非表示列も含めてコピー
-
エクセルで空白以外のセルの値...
-
エクセル VBA 指定の範囲内をコ...
-
エクセルで反転コピー
-
エクセルの関数について(日付で...
-
一行おきにコピーするマクロが...
-
エクセル マクロ 貼り付け先が...
-
[Excel VBA]空白セル以外に連番...
-
特定の桁数を抽出
-
エクセルで行挿入した際、自動...
-
エクセルVBA 複数列をコピーす...
-
Excel 条件に従いセル移動するには
-
マクロで値がある列までコピー
-
マクロ初心者です、小数点6桁で...
-
エクセルで縦に長い表を印刷
-
【Excel-マクロ】グループとア...
-
行数が不規則な一週間ごとの合...
おすすめ情報
遅くなりましたがsheet2に表示させたいデータです。元のsheetと同じく項目が4行目に来ます。(見づらく申し訳ありません。)Q列の値の行数が自動挿入さえできれば、おかげ様であとは何とかできそうです。どうか宜しくお願い致します。