Excel vbaについて知恵もしくは、コード教えて下さいm(__)m
① 表にあるデータをコピー、隣シートのセル入力の最終行下へ貼り付け。ここまではマクロが出来ているのですが、表にあるデータから隣のシートへコピペする際に、同じものがないかを調べた上で貼り付けを行いたいのですが(同じものがあった場合はペーストしない)、どのような方法がありますか?
一度貼り付けを行って、その後に重複削除する方法しかないですか?
②G列の4行目〜セルに値が入ったら、エンター後、Worksheet_Changeが起動し、その行にそれぞれ値が入るようになっています。
やりたい事は、G列 4行目セルに値が入ったら、3つ先下の何も入ってないセルに移動したい。(繰り返し行いたい)
どのようなコードを書けばよろしいのでしょうか、、?
ご教授のほどよろしくお願いします。
No.2ベストアンサー
- 回答日時:
こんにちは
>① 同じものがないかを調べた上で貼り付けを行いたいのですが~
「同じ値」があるかをチェックしたいのでしょうか?
複数のセル範囲の値なのか、単体セルの値なのかもよくわかりませんが・・
例えば、「ある値と同じ値が、あるセル範囲にあるかどうか」を調べたければ、対象範囲のセルをFor Eachなどでループして、同じ値かどうかをチェックすれば良いのでは?
ループなどしなくても存在チェックだけなら、 調査範囲.Find チェック値 で該当するセルが返されるかどうかでもチェック可能と思います。
If Not (調査範囲.Find チェック値) Is Nothing Then ~~
また、WorksheetFunction の Countif を利用することでもチェック可能と思われます。
>②G列 4行目セルに値が入ったら、3つ先下の何も入ってないセル
> に移動したい。(繰り返し行いたい)
3つ下のセルに値が入っていたらどうするのか不明ですが・・
G4セル固定の処理なら、「3つ下」はG7セルなので、
If IsEmpty(Range("G7")) Then Range("G7").Value = Range("G4").Value
などとしておくとか。
一般化したいのなら、Changeイベントの場合は、Targetに対象セルが取得できていると思いますので、「3つ下」のセルは、Target.Offset(3) とすることで指定可能です。
※ セルの値を変更する場合は、処理中にイベントが再発生しないように、イベント処理を一時停止しておく必要があるでしょう。
No.1
- 回答日時:
(´・ω・`)
処理が重くなるから、普通に貼り付けた後
「重複の削除」
で良いんじゃないかな。
VBAでどうやるか分からなければ、
リボンの「データ」の「データツール」に「重複の削除」があるので
「マクロの記録」
を使って挙動を記録して確認しましょう。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 1 2023/02/27 22:21
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 3 2023/02/28 01:13
- Excel(エクセル) Excelの複数ファイルの複数行を別ファイル1つのシートにVBA、マクロで集約する方法 5 2022/09/13 06:30
- Excel(エクセル) VBA セルの値と同じ名前のシートにデータを貼り付けするやり方を教えてください 2 2022/05/17 16:26
- Excel(エクセル) VBA 特定の列に入っているテキストをコピペ 2 2023/06/14 11:24
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/03 12:30
- Excel(エクセル) エクセルのマクロについて教えてください。 3 2023/02/07 14:47
- Excel(エクセル) Excelにて、行の最後のセルの値をコピーして別sheetに張りつけるVBAコードをご教授願います 3 2022/11/20 14:35
- Visual Basic(VBA) 複数csvを横に追加していくマクロについて 2 2023/04/25 09:19
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/03 11:27
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
特定のセルが空白だったら、そ...
-
ExcelVBAを使って、値...
-
【Excel VBA】指定行以降をクリ...
-
i=cells(Rows.Count, 1)とi=cel...
-
【Excel】指定したセルの名前で...
-
指定した条件で行セルを非表示...
-
DataGridViewのセル編集完了後...
-
Excelで指定した日付から過去の...
-
VBA コピーして次の値まで貼り...
-
Excel VBA、 別ブックの最終行...
-
エクセルVBAでコピーして順...
-
ExcelのVBAで数字と文字列をマ...
-
screenupdatingが機能しなくて...
-
特定行の色を変えたい(FlexGrid)
-
連続する複数のセル値がすべて0...
-
Excel vbaについて知恵もしくは...
-
Excel ユーザーフォームをモー...
-
【EXCEL VBA】Range("A:A").Fi...
-
プロムラミングが得意な人助け...
-
excelで置換をしたいんですが
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ExcelVBAを使って、値...
-
特定のセルが空白だったら、そ...
-
i=cells(Rows.Count, 1)とi=cel...
-
【Excel VBA】指定行以降をクリ...
-
Excelで指定した日付から過去の...
-
【Excel】指定したセルの名前で...
-
TODAY()で設定したセルの日付...
-
EXCELで変数をペーストしたい
-
Excel VBA、 別ブックの最終行...
-
Excelのプルダウンで2列分の情...
-
VBA コピーして次の値まで貼り...
-
screenupdatingが機能しなくて...
-
エクセルVBAでコピーして順...
-
VBA初心者です。結合セルを保持...
-
セル色なしの行一括削除
-
VBAでセルをクリックする回...
-
Excel vbaで特定の文字以外が入...
-
DataGridViewの各セル幅を自由...
-
特定の文字を条件に行挿入とそ...
-
【VBA】指定したセルと同じ値で...
おすすめ情報