
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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
”戻り値”が変化したときに、マ...
-
VBA実行後に元のセルに戻りたい
-
ExcelVBAを使って、値...
-
特定のセルが空白だったら、そ...
-
Excel VBAで、 ヘッダーへのセ...
-
Excelのハイパーリンクにマクロ...
-
Google Apps Script:Googleスプ...
-
screenupdatingが機能しなくて...
-
DataGridViewで右寄せ左寄せが...
-
Book1のセルへ別Book(Book2)...
-
エクセルの参照先セルの選択に...
-
VBA ユーザーフォーム ボタンク...
-
エクセルVBAでできるでしょ...
-
Excelで指定した日付から過去の...
-
3桁または4桁の数値を時刻に...
-
EXCELで変数をペーストしたい
-
VB.NETで DataRow()を利用して...
-
VBAでActiveDirectoryのユーザ...
-
VBA B列にある前から10文字の...
-
リストビューに条件による表示
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ExcelVBAを使って、値...
-
特定のセルが空白だったら、そ...
-
特定行の色を変えたい(FlexGrid)
-
i=cells(Rows.Count, 1)とi=cel...
-
Excelで指定した日付から過去の...
-
エクセルvbaで、別シートの最下...
-
VBA実行後に元のセルに戻りたい
-
Application.Matchで特定行の検索
-
”戻り値”が変化したときに、マ...
-
VBAでセルをクリックする回...
-
任意フォルダから画像をすべて...
-
Excel VBAで、 ヘッダーへのセ...
-
TODAY()で設定したセルの日付...
-
【Excel VBA】指定行以降をクリ...
-
Excel vbaで特定の文字以外が入...
-
ExcelのVBAで数字と文字列をマ...
-
Excel VBA、 別ブックの最終行...
-
DataGridViewの各セル幅を自由...
-
VBA ユーザーフォーム ボタンク...
-
連続する複数のセル値がすべて0...
おすすめ情報