Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


29 / 13055 ツリー ←次へ | 前へ→

【79388】選択行を条件付けて転記(切取・貼付) けい 17/9/12(火) 18:01 質問[未読]
【79389】Re:選択行を条件付けて転記(切取・貼付) マナ 17/9/12(火) 18:57 発言[未読]
【79391】Re:選択行を条件付けて転記(切取・貼付) けい 17/9/13(水) 12:52 質問[未読]
【79392】Re:選択行を条件付けて転記(切取・貼付) マナ 17/9/13(水) 21:59 発言[未読]
【79393】Re:選択行を条件付けて転記(切取・貼付) けい 17/9/14(木) 17:08 お礼[未読]
【79394】Re:選択行を条件付けて転記(切取・貼付) マナ 17/9/14(木) 19:21 発言[未読]

【79388】選択行を条件付けて転記(切取・貼付)
質問  けい  - 17/9/12(火) 18:01 -

引用なし
パスワード
   よろしくお願いします。vbaは殆ど分からず、職場で必要に迫られ作成中です。
例ですが、sheet1に一覧表(a1/b1/c1にそれぞれ日付/氏名/内容の項目があり、2行目からデータ)があります。b1には「鈴木」「田中」の名前が入っています。シートは3枚(「sheet1」「鈴木」「佐藤」)あり、プロジェクト終了後にsheet1の終了した行を選択したら、b列の名前を判断して、該当する名前のシートに切り取り→貼付(各シートの最終行に)したいと思ってます。
マクロでやりたいことは、アクティブな行を選択した上で、その後の転記と、元の行削除をしたいのですが、どのようなコードになるのか教えて頂きたいです。

【79389】Re:選択行を条件付けて転記(切取・貼付)
発言  マナ  - 17/9/12(火) 18:57 -

引用なし
パスワード
   ▼けい さん:
参考コードです。

Option Explicit

Sub test()
  Dim 名前 As String
  Dim 元データ As Range
  Dim 転記先 As Range
  
  名前 = "鈴木"
  
  Set 元データ = ActiveCell.EntireRow
  Set 転記先 = Sheets(名前).Range("A" & Rows.Count).End(xlUp).Offset(1)
  
  元データ.Copy 転記先
  元データ.Delete

End Sub

【79391】Re:選択行を条件付けて転記(切取・貼付)
質問  けい  - 17/9/13(水) 12:52 -

引用なし
パスワード
   マナさん
さっそくのご回答、ありがとうございます!!
ひとつ巧くいかない点があり、申し訳ありませんが教えて頂ければと思います。

サンプルデータを作成してマクロの実行をしたのですが、「もしアクティブ行b列が『田中だったら』『鈴木だったら』」「『田中or鈴木』シートに」という条件分岐(?)がうまくいきません。自分でif〜then elsef endifを挿入して作成してみたのですがすまくいかず。。
すみませんよろしくお願いします。
(質問のシート名「佐藤」は間違いですすみません)

【79392】Re:選択行を条件付けて転記(切取・貼付)
発言  マナ  - 17/9/13(水) 21:59 -

引用なし
パスワード
   ▼けい さん:

>自分でif〜then elsef endifを挿入して作成してみたのですがすまくいかず。。

そのコードを教えてください。

【79393】Re:選択行を条件付けて転記(切取・貼付)
お礼  けい  - 17/9/14(木) 17:08 -

引用なし
パスワード
   マナさん
返信をありがとうございます。このサイトを見つけ慌てて投稿してしまいましたが、サイトの基本方針を後で見て、丸投げで投稿してしまって申し訳ないです。
全くの初心者でIF〜やselect caseなど片端から入れてみましたが、そもそもの構文の基本も分からないので、今は急ぎ必要だったこともあり、マナさんから回答頂いたコードを使い、氏名一人に1つのコードで作成して、(氏名(シート)は5人(枚)あるので)5つのコードを各コマンドボタンに貼り付けようと思います。
そちらでうまくいきましたので、使わせて頂きます。
本当に助かりました。ありがとうございました!!
条件分岐はもう少し勉強してから自力で頑張りたいと思います。
m(_ _)m

【79394】Re:選択行を条件付けて転記(切取・貼付)
発言  マナ  - 17/9/14(木) 19:21 -

引用なし
パスワード
   ▼けい さん:

>丸投げで投稿してしまって申し訳ないです。

エラーがでるコードでもよかったのに…
それを提示してくれるだけで印象がかわります。

-----

>もしアクティブ行b列が

ということであれば、これでできます。

Option Explicit


Sub test2()
  Dim 名前 As String
  Dim 元データ As Range
  Dim 転記先 As Range
 
  Set 元データ = ActiveCell.EntireRow
    
  名前 = 元データ.Range("B1").Value '★
  
  Set 転記先 = Sheets(名前).Range("A" & Rows.Count).End(xlUp).Offset(1)
 
  元データ.Copy 転記先
  元データ.Delete

End Sub


------

ただし、もしその名前のシートが存在しないとエラーで止まっちゃうので
実際に使うとすると、そうならないように対策が必要です。

29 / 13055 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free