Excel VBA質問箱 IV

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

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


3002 / 13644 ツリー ←次へ | 前へ→

【64105】セルに変化があったら転記 akari 10/1/19(火) 15:43 質問[未読]
【64107】Re:セルに変化があったら転記 Jaka 10/1/19(火) 16:50 発言[未読]
【64108】Re:セルに変化があったら転記 akari 10/1/19(火) 17:41 質問[未読]
【64110】Re:セルに変化があったら転記 ponpon 10/1/19(火) 19:33 発言[未読]
【64845】Re:セルに変化があったら転記 akari 10/3/18(木) 15:29 お礼[未読]

【64105】セルに変化があったら転記
質問  akari  - 10/1/19(火) 15:43 -

引用なし
パスワード
   初心者のため教えていただきたく投稿しました。 以下のことをVBで記述したいのですが、よろしくお願いいたします。

  sheet1(データ入力)
  ・1行目は項目が入ってます。
  ・データは手入力でB2からH2まで入力します。
  ・A列に「転送」という文字が入力されたらB〜HまでをSheet2の3行めからら下   に転記

  sheet2(転記シート)

  sheet3
  ・1行目は項目が入ってます。
  ・データは手入力でB2からH2まで入力します。
  ・A列に「転送」という文字が入力されたらB〜HまでをSheet4の3行めから下に   転記
  sheet4 (転記シート)
   ・
   ・

【sheet1】  A   B   C   D   E   F   G   H
      1   項目 項目 項目 項目 項目 項目 項目
      2   あ  い  う  え  お  か  き
      3
【sheet2】

        A  B  C  D   E   F   G   H 
     1   
     2
      3   あ  い  う  え  お  か  き
【sheet3】
       A   B   C   D   E   F   G   H 
      1   項目 項目 項目 項目 項目 項目 項目
      2    あ  い  う  え  お  か  き
      3
【sheet4】

       A   B   C   D   E   F   G   H 
      1   
      2
      3   あ  い  う  え  お  か  き

【64107】Re:セルに変化があったら転記
発言  Jaka  - 10/1/19(火) 16:50 -

引用なし
パスワード
   thisworkbookにこんな感じだけど、エラー処理してません。

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim SHNm As String, ERw As Long
If Target.Column = 1 Then
  If Target.Value = "転送" Then
   If Sh.Name = "Sheet1" Then
     SHNm = "Sheet2"
   ElseIf Sh.Name = "Sheet3" Then
     SHNm = "Sheet4"
   End If
   If SHNm <> "" Then
     ERw = Sheets(SHNm).Range("B" & Rows.Count).End(xlUp).Row + 1
     If ERw < 3 Then
      ERw = 3
     End If
     Sheets(SHNm).Range("B" & ERw & ":H" & ERw).Value = _
           Target.Offset(, 1).Resize(, 7).Value
   End If
  End If
End If
End Sub

【64108】Re:セルに変化があったら転記
質問  akari  - 10/1/19(火) 17:41 -

引用なし
パスワード
   ▼Jaka さん:
早速のご回答ありがとうございます。
教えていただいたコードを貼り付けて試しました結果、希望通りの動きをしまし た。(ありがとうございます。)
 あと1つだけ教えていただきたいですが、シート1・2、3・4の関係をシート5・6、7・8、9・10、11・12と増やしたのですが、下記コードのどこを
どういうふうに修正すればいいか教えてください。よろしくお願いいたします。

>thisworkbookにこんな感じだけど、エラー処理してません。
>
>Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
>Dim SHNm As String, ERw As Long
>If Target.Column = 1 Then
>  If Target.Value = "転送" Then
>   If Sh.Name = "Sheet1" Then
>     SHNm = "Sheet2"
>   ElseIf Sh.Name = "Sheet3" Then
>     SHNm = "Sheet4"
>   End If
>   If SHNm <> "" Then
>     ERw = Sheets(SHNm).Range("B" & Rows.Count).End(xlUp).Row + 1
>     If ERw < 3 Then
>      ERw = 3
>     End If
>     Sheets(SHNm).Range("B" & ERw & ":H" & ERw).Value = _
>           Target.Offset(, 1).Resize(, 7).Value
>   End If
>  End If
>End If
>End Sub

【64110】Re:セルに変化があったら転記
発言  ponpon  - 10/1/19(火) 19:33 -

引用なし
パスワード
   ▼akari さん:
Jaka さんのをそのまま引き継いで

> 早速のご回答ありがとうございます。
> 教えていただいたコードを貼り付けて試しました結果、希望通りの動きをしまし た。(ありがとうございます。)
> あと1つだけ教えていただきたいですが、シート1・2、3・4の関係をシート5・6、7・8、9・10、11・12と増やしたのですが、下記コードのどこをどういうふうに修正すればいいか教えてください。よろしくお願いいたします。
>
>>thisworkbookにこんな感じだけど、エラー処理してません。

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim SHNm As String, ERw As Long, i As Long

  If Not Target.Column = 1 Then Exit Sub
  If Target.Value = "転送" Then
    Application.EnableEvents = False
    For i = 1 To 11 Step 2
     If Sh.Name = "Sheet" & i Then
       SHNm = "Sheet" & i + 1
       Exit For
     End If
    Next
    If SHNm <> "" Then
     ERw = Sheets(SHNm).Range("B" & Rows.Count).End(xlUp).Row + 1
     If ERw < 3 Then
       ERw = 3
     End If
     Sheets(SHNm).Range("B" & ERw & ":H" & ERw).Value = _
           Target.Offset(, 1).Resize(, 7).Value
    End If
    Application.EnableEvents = True
  End If

End Sub

【64845】Re:セルに変化があったら転記
お礼  akari  - 10/3/18(木) 15:29 -

引用なし
パスワード
   Jakaさん、ponpon さん
 ヒントをいただき、ありがとうございました。

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