エクセルで、データの右端の列に表示されている、別のシートから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も見ています
-
10代と話して驚いたこと
先日10代の知り合いと話した際、フロッピーディスクの実物を見たことがない、と言われて驚きました。今後もこういうことが増えてくるのかと思うと不思議な気持ちです。
-
あなたにとってのゴールデンタイムはいつですか?
一週間の中でもっともテンションが上がる「ゴールデンタイム」はいつですか? その逆で、一週間でもっとも落ち込むタイミングでも構いません。 よかったら教えて下さい!
-
初めて自分の家と他人の家が違う、と意識した時
子供の頃、友達の家に行くと「なんか自分の家と匂いが違うな?」って思いませんでしたか?
-
許せない心理テスト
私は「あなたの目の前にケーキがあります。ろうそくは何本刺さっていますか」と言われ「12本」と答えたら「ろうそくの数はあなたが好きな人の数です」と言われ浮気者扱いされたことをいまだに根に持っています。
-
お風呂の温度、何℃にしてますか?
みなさん、家のお風呂って何℃で入ってますか? ぬるめのお湯にゆったり…という方もいれば、熱いのが好き!という方もいるかと思います。 我が家は平均的(?)な42℃設定なのですが、みなさんのご家庭では何℃に設定していますか?
-
Excelで、あるセルの値に応じて行を自動挿入したい
Visual Basic(VBA)
-
Excel で行を指定回数だけコピーしたい
Excel(エクセル)
-
excelで任意のセルを指定回数コピーペーストする方法を教えてください
Excel(エクセル)
-
-
4
エクセルでの行数・列数を指定しての一括コピーの方法
Excel(エクセル)
-
5
エクセルでセルの値分の個数の文字列を自動で入れたい
Excel(エクセル)
-
6
Excel VBA 複数行を数の分だけ挿入したい
Visual Basic(VBA)
-
7
特定の条件の時に行を挿入したい
Excel(エクセル)
-
8
エクセルVBA 指定範囲を指定回数繰り返しコピー
Excel(エクセル)
-
9
VBAで繰り返しコピーしながら下へ移動させる方法
Excel(エクセル)
-
10
特定の文字を条件に行挿入とそこからセルデータを追加するVBAについて
Visual Basic(VBA)
-
11
Excel 指定行までコピーをおこないたい
その他(Microsoft Office)
-
12
Excelのシートにある1行のデータを複数行に分割したい
Excel(エクセル)
-
13
エクセルVBAでオートフィルター最上行を取得するには
Excel(エクセル)
-
14
繰り返し1行~28行までを順順にコピーする方法
Visual Basic(VBA)
-
15
excelで、セル内に文字が入力される毎に行が自動挿入される仕組みを作りたいのですが…
Excel(エクセル)
-
16
LARGE関数 飛び飛びの範囲を指定
Excel(エクセル)
-
17
エクセルで指定回数だけ別セルに繰り返す方法
Excel(エクセル)
-
18
Excelで行ごとコピー、同じ行を3行にしたい
Excel(エクセル)
-
19
別ブックをダイアログボックスで指定してそこにあるシートをコピーしたい
Excel(エクセル)
-
20
VBAで条件が一致する行をコピーしその1つ下へ挿入
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EXCELにて複数列を同条件(色)...
-
エクセルで表示された値だけ行...
-
Excelの非表示列も含めてコピー
-
シート保護の状態で行の追加を...
-
エクセルの関数について(日付で...
-
行数が不規則な一週間ごとの合...
-
2つのセルの入力忘れ防止の警告...
-
エクセルのマクロ、AVERAGEIFを...
-
日報に自動で矢印線をひきたい
-
エクセルで反転コピー
-
エクセル マクロ 貼り付け先が...
-
【Excel-マクロ】グループとア...
-
エクセルでマクロを使った特定...
-
一行おきにコピーするマクロが...
-
エクセルで空白以外のセルの値...
-
特定の桁数を抽出
-
エクセル・マクロで最終行を表...
-
EXCELで○ヶ月を○年○ヶ月に変換...
-
A1セルに入力したら、入力時間...
-
エクセルで勝手に表示された打...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXCELにて複数列を同条件(色)...
-
シート保護の状態で行の追加を...
-
一行おきにコピーするマクロが...
-
Excelの非表示列も含めてコピー
-
エクセルで行挿入した際、自動...
-
エクセルの関数について(日付で...
-
エクセル マクロ 貼り付け先が...
-
エクセルで表示された値だけ行...
-
エクセルで空白以外のセルの値...
-
[Excel VBA]空白セル以外に連番...
-
エクセルVBA 複数列をコピーす...
-
エクセルで反転コピー
-
エクセル VBA 指定の範囲内をコ...
-
行数が不規則な一週間ごとの合...
-
特定の桁数を抽出
-
マクロで値がある列までコピー
-
【Excel-マクロ】グループとア...
-
Excel VBAで日にちを入力して線...
-
エクセルでA列セルが空白の時そ...
-
エクセルVBA 並び替え セルの...
おすすめ情報
遅くなりましたがsheet2に表示させたいデータです。元のsheetと同じく項目が4行目に来ます。(見づらく申し訳ありません。)Q列の値の行数が自動挿入さえできれば、おかげ様であとは何とかできそうです。どうか宜しくお願い致します。