教えて下さい。vba初心者です。
A B C D E F G H
7 522 加藤 沖縄 みかん 縄 1 1/5 空欄
8 123 吉田 愛媛 りんご 水 3 2/10 空欄
1️⃣一番最後に入力した行をすぐ下にコピーしたい。(ここでは7行目…入力して行くと行は増えます。)
2️⃣指定回数はE列。
この列ではE列が3回になりますので、
コピーしたい範囲はA〜G列を、すぐ下の8行〜9行までの2回分コピーしたいです。
完成希望例
A B C D E F G H
7 522 加藤 沖縄 みかん 縄 1 1/5 空欄
8 123 吉田 愛媛 りんご 水 3 2/10 空欄
9 123 吉田 愛媛 りんご 水 3 2/10 空欄
10 123 吉田 愛媛 りんご 水 3 2/10 空欄
にしたいです。
No.14
- 回答日時:
うう、名前定義ですぅ。
数式リボンに名前定義がありませんか?
そこの話です。
OFFSETはそちらに使わないと機能しません。
VLOOKUPの記述はこんな感じ。
=VLOOKUP(I16,管理表領域,2)
管理表領域は別にどんな名前でもいいです。
ただ管理表だけだとシート名と混乱するかと思って。
別件ですが、添付画像はWindowsアクセサリーのSnippingToolを
使ってます。カメラより見やすく任意領域が切り取り出来ますよ。
夜分に恐れ入ります。
名前の領域設定出来ました。
ありがとうございます。
不具合があり、質問したいです。
場合によって、正確に認識出来る場合と、一部エラーの場合、全てエラーになる場合があります。
どこか間違えているのでしょうか?
Windowsアクセサリーがわからず、ツールが使えませんでした。
アクセサリーの勉強もしたかったのですが、時間がかかるので、今回は画像で対応させて下さい(泣)
補足質問コーナーに画像添付します。
すみません。
ご教授お願いします。
No.13
- 回答日時:
>シート2にVLOOKUP関数が入っていて、管理表(sheet1)のA列のコード番号を入力すると、内容が表示されるシートを作ってあったのですが、
>A行のコード番号を入力しても#N/Aになってしまいました。
>別シートでVLOOKUP関数が使えるようにするためにはどうしたらよいのでしょうか?
VLOOKUPの式を見ずに答えるのはちょいムズイんですが
VLOOKUPは探す値と範囲がありますよね。
この範囲が管理表では拡大していくということですよね。
ということは、範囲が可変じゃないといけないわけです。
で、そういった場合には通常名前定義を用います。
名前定義、可変領域でググってみて戴けませんか。
やってみて不明ならまた尋ねてください。
何度も恐れ入ります。
ご教授お願いします。
offset関数とvloolup関数を使って何度も試しましたが、うまくいきませんでした。
sheet2のI16のセルに123と入力した時、
sheet2のB9のセルに吉田と表示させたいです。
これで試しましたが、エラーでした。
=VLOOKUP(I16,OFFSET(管理表!A7,0,0,COUNTA(A:A)-1,18),2)
元データとして・・・sheet1はA7からデータは始まります。
sheet1のA8に123
sheet1のB8に吉田
になっています。
offsetの使い方が理解できなかったです(涙)
ご教授お願いします。
No.12
- 回答日時:
抜けてると思ったけど大丈夫だった。
勘違いすみません。
1で割っても余りは出ない・・・。(-_-;)
yokomayaさま
補足回数が残り1回になってしまいました;つД`)
空いているお礼ボックスがあったのでそちらから失礼します。
どうか残り2つ…教えていただきたいことがあります。
①sheet1の管理表のA1の列にA7以降に入力済の番号の内の一つを選んで(例123と番号入力したら、A7以降に入力した123に該当する番号のデータのみを全て表示させたいのです。
②sheet2のvlookupの検索地の横にもう一つ検索地を設けて、2つのデータに一致する行を表示させたいのです。
sheet1の情報はA7以降とF7以降のデータです。F7は以前ご教授頂いた指定の数こコピーの指令個所です。(コピー後、手入力で任意番号を上書きしています。)sheet2で =VLOOKUP(K17&L171,回数,15,FALSE) ★名前の定義は設定済です。これでは2種類条件の一致するデータは拾えませんでした。(k17はsheet1で指定したa列の番号とⅬ17はsheet1のF列の任意番号です。)
本当は補足で画像を添付して送りたいのですが…大切な残り1回を残しておきたいのです。
今後もyokomayaさまにご教授お願いしたいのですが、どうしたらよいのでしょうか?
No.11
- 回答日時:
何度もごめんなさい。
単に最終行だけの操作であればもっと簡単にすればよかったです。
コマンドボタンのコードを↓にしてください。
Private Sub CommandButton1_Click()
Dim lastRow As Long, lastCol As Long, cnt As Long
lastRow = Cells(Rows.Count, "A").End(xlUp).Row
If lastRow > 6 Then
lastCol = Cells(6, Columns.Count).End(xlToLeft).Column
If Cells(lastRow, "F") > 1 Then
Do Until cnt = Cells(lastRow, "F") - 1
cnt = cnt + 1
Cells(lastRow, "A").Resize(, lastCol).Copy Cells(Rows.Count, "A").End(xlUp).Offset(1)
Loop
End If
End If
End Sub
どうも失礼しました。m(_ _)m
No.10
- 回答日時:
No.3・4・6です。
>入力後(行のコピー起動ボタンを作りました。)
コマンドボタンを挿入したというコトでしょうか?
その場合は
Private Sub CommandButton1_Click()
と
End Sub
の中に旋回のコード(Sub Sample・・・と End Sub以外)をコピー&ペーストしてみてください。
7行目からデータがある場合はコード内の「8」を「7」に変更してください。
※ まず、最初のデータだけの状態からマクロを実行(コマンドボタンをクリック)してみてください。
あとはデータ追加後、随時ボタンをクリック!m(_ _)m
No.9
- 回答日時:
ごめんなさい。
1の場合処理不要がぬけてます。わかります?今外なので。何度もご丁寧にありがとうございます。
恐れ入りますが、補足でもう一件お願いします。
おかげさまで管理表は無事出来たのですが、別シート(sheet2)に伝票があります。
シート2にVLOOKUP関数が入っていて、管理表(sheet1)のA列のコード番号を入力すると、内容が表示されるシートを作ってあったのですが、
A行のコード番号を入力しても#N/Aになってしまいました。
別シートでVLOOKUP関数が使えるようにするためにはどうしたらよいのでしょうか?
No.7
- 回答日時:
こちらこそ文をよく読まずに失礼いたしました。
下記はG列まで行入力完了時、自動的に発動します。
シート名右クリックコードを表示で出る
シートモジュールに貼ってください。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim cl As Range, i As Long
If Target.Column = 7 Then 'G列変更時に
Set cl = Range("F20000").End(xlUp)
i = 1
Do While cl = cl.Offset(-i, 0)
i = i + 1
Loop
If i Mod cl.Value = 1 Then 'G列の修正だけなら処理しない
Application.EnableEvents = False 'イヴェント発生停止
cl.EntireRow.Copy Cells(cl.Row + 1, 1).Resize(cl.Value - 1, 1)
Application.EnableEvents = True
End If
End If
End Sub
自動発動出来れば、かなり嬉しいです。
ありがとうございました。
頂いたコードをそのまま貼り付けましたが、自動で発動しないのです。
【シート名右クリックコードを表示で出る。シートモジュールに貼ってください】
の事でしょうか?
理解力不足で申し訳ないのですが、どこに貼れば良いのかわからないので、ご指導お願いします。
今回のシート名は 管理表.xlsm-module2(コード)と言う名前で画面表示があります。
ご教授お願いします。
No.6
- 回答日時:
続けてお邪魔します。
当然のコトですが同じマクロを何度も繰り返して実行すると
いくらでも行は追加されてしまいます。
① COUNTIF関数などで重複がない行だけ操作をする。
② どこか使っていない列を使い一度操作した行はフラグを立て、それを目印にフラグがない行だけ操作を実行する。
といった方法で対処するのが良いと思います。
簡単なのは①だとおもいますが、②のコードにしてみました。
Sub Sample2()
Dim i As Long, cnt As Long, lastCol As Long
lastCol = Cells(6, Columns.Count).End(xlToLeft).Column
For i = Cells(Rows.Count, "A").End(xlUp).Row To 8 Step -1 '//←前回は7行目まで?
If Cells(i, "F") > 1 Then
If Cells(i, lastCol + 1) = "" Then
Cells(i, lastCol + 1) = 1
Do Until cnt = Cells(i, "F") - 1
cnt = cnt + 1
Rows(i + 1).Insert
Cells(i, "A").Resize(, lastCol + 1).Copy Cells(i + 1, "A")
Loop
cnt = 0
End If
End If
Next i
Cells(1, lastCol + 1).EntireColumn.Hidden = True
End Sub
前回は7行目以降の操作にしていたのですが、8行目以降の操作になるのでしょうか?m(_ _)m
ご教授ありがとうございます。
試してみましたが・・・作動しませんでした。(←前回は~?までは消しました。)私の知識不足でお手数おかけします。
説明の補足をさせてください。
①7行目のデータをF列指定の回数だけコピー後、(例3回指定であれば、7行目に入力した分を含め9行目まで同一のデータに貼り付け。
②10行目以降も異なる新規データを登録する為、入力後(行のコピー起動
ボタンを作りました。)起動ボタンを押した時に、新らたに入力した1行のみをF列の指定の回数分コピーする操作は可能でしょうか?
No.5
- 回答日時:
No.3・4です。
>Do Until cnt = cells(i,”e”) - 1
>の部分が黄色く光っていて、実行出来ないのです。
ん?E列に回数の数値が入っているのでは?
E列が文字列だとエラーになります。
あっ!補足の文章が目に入りました。
質問文では「E列」が回数だと書いてあると思うのですが、
補足では「F列」になっていますね。F列に回数があるのであれば・・・
前回のコードの "E" の部分をF列の "F" に変更してください。
(2か所あります)m(_ _)m
ありがとうございます。
Fにしたらコピー出来ました。
引き続きご指導お願いします。
11行目にまた異なる新たなデータを入力してvba実行したら…
8行目からのデータがズラリとコピーされてしまいました。
今後も異なる新たなデータを増やして行く予定で、一行上の入力した分のデータのみFの回数分コピーして行きたいです。
ご指導お願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) excelにて、特定の列に数字入力してあれば、入力してある行コピーして 別ファイルに張り付ける 2 2022/08/11 05:33
- Access(アクセス) Accessのクエリの結果を、既存のエクセルに追加したい 2 2022/07/31 22:44
- Excel(エクセル) エクセルの散布図で新たに入力した値のデータラベルが空欄になる現象 1 2022/04/26 09:31
- Excel(エクセル) VBA 特定の列に入っているテキストをコピペ 2 2023/06/14 11:24
- Visual Basic(VBA) Excel VBA キーワードから列を取得して、さらに空欄行を非表示にする 3 2022/10/21 22:49
- Visual Basic(VBA) エクセルVBAで『A列』に新規で数値を入力し『B列』から右方向の空白セルにその値を貼り付ける方法 4 2022/11/05 08:37
- Visual Basic(VBA) マクロで最終行を取得したい 4 2023/05/28 12:14
- Excel(エクセル) エクセル テーブル機能の不明点 2 2022/04/14 14:10
- Excel(エクセル) エクセルで最初に値が入っているセルを見つける方法はありますか? 2 2023/07/18 14:58
- Excel(エクセル) エクセルについて教えてください。 1回目が80以上(数字) or 対象外 (文字列)or (空欄) 2 2022/10/17 11:42
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
Excel で行を指定回数だけコピーしたい
Excel(エクセル)
-
エクセルで表示された値だけ行数をコピーし挿入、挿入行の指定したセルに連続した値を表示できますか?
Excel(エクセル)
-
エクセルのVBAで指定した行数の追加と数式のコピー方法をご教示いただけますか?
Visual Basic(VBA)
-
-
4
エクセルVBA 指定範囲を指定回数繰り返しコピー
Excel(エクセル)
-
5
excelで任意のセルを指定回数コピーペーストする方法を教えてください
Excel(エクセル)
-
6
Excelのフィルター後の一番上のセルをコピーする(マクロ教えて。) Excelで5行目にフィルター
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセル 指定した文字列を含...
-
エクセルで同じ名前ごとの合計...
-
エクセルVBA Unionはなぜ遅い?
-
エクセルの関数SUBSTITUTEを、...
-
エクセルで列内の同じIDの商品...
-
Excelで自動的に並べ替えなんて...
-
EXCEL VBA 指定範囲内で特定の...
-
エクセルマクロでA欄に値があ...
-
エクセル マクロで列を連続し...
-
エクセルで一部除外した数字を...
-
桁数が混在する並び替えの方法
-
Excel 複数キーワードの確認方法
-
Excelで数値→文字列変換で指数...
-
Excelで行ごとコピー、同じ行を...
-
テキストボックス内の文字のふ...
-
PDFの一部を切り取って別のシー...
-
塗りつぶしの色をコピーするには
-
パワーポイントに貼り付けたエ...
-
エクセルにおける、グラフの指...
-
Excelの関数について、特定の文...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセル 指定した文字列を含...
-
エクセルで同じ名前ごとの合計...
-
エクセルVBA Unionはなぜ遅い?
-
エクセルの関数SUBSTITUTEを、...
-
桁数が混在する並び替えの方法
-
エクセルで一部除外した数字を...
-
EXCEL VBA 指定範囲内で特定の...
-
エクセルで列内の同じIDの商品...
-
エクセルで2列を検索し2列とも...
-
エクセル マクロで列を連続し...
-
EXCEL 指定した曜日に番号を振...
-
EXCELである列を上から順にチェ...
-
Excelで自動的に並べ替えなんて...
-
エクセルvba 一つ上の行を指定...
-
エクセル VLOOKUPが反映されない
-
エクセルマクロでA欄に値があ...
-
(続き)Excel2013で正しくソート...
-
ExcelVBA:列方向の並び替え O...
-
エクセルのマクロ教えてください。
-
エクセル 並び替え
おすすめ情報
2️⃣の訂正です。
指定回数はF列です。
1番上のABCはエクセルの列番号
左端の7と8はエクセルの行番号です。
初めて質問した為、見にくくなってしまい、すみません。
11行目からも同様に異なる新たなデータを入力後、
F列の回数分コピーしたいです。
データをどんどん追加して行きたいのです。
画像を補足させて頂きました。
ご指導お願いします。
yokomaya様
画像です。
ymkomayaさま
ymkomayaさま
ymkomayaさま
こちらがエラーの画像です。
ymkomayaさま
先程のR列の画像です。
17列〜21列にしたいです。
ご不便お掛けしますが、ご教授お願いします。
出来ました!うれしいです(喜)
添付方法を勉強しておりました。
今回教えていただいたプログラムをコピーして、貼り付けてみました。
TABキーでインデントを何度か入れたりしながら、作動するように頑張ってるのですが、なかなか赤文字エラーが取れないです。
どこでTABを入れたらよいのか教えていただけますでしょうか?
あと2回で補足ができなくなってしまうと…yokomayaさまに繋がらなくなってしまうのが不安です。
こちらの他にあと2つお聞きしたい事が残っていまして…
①管理表のA1部分に検索をかけたいです。A7以降に入力した番号をA1に入力すると(例 A1に123と入力後、A7に登録した123と合致するデータを全て呼び出したいです。
②前回教授頂いた条件検索の横に番号A列とF列の2個の条件に一致するデータを取り出す関数も教えてください。(管理表F列でコピー回数指定の後、上書き直してます。)
最後の補足になってしまいました。
今まで本当にお世話になり、感謝申し上げます。
これからもよろしくお願いします<m(__)m>