■■ □投稿者/ 竹庵 -(2025/06/18(22:14)) □U R L/ 初心者の竹庵と言います 下記のような内容で入力シートのD9,E13,F14に入力し、得意先シートを表示すると得意先シートのC5,D8,F11にデータが転記されます Private Sub Worksheet_Activate() Worksheets("得意先").Range("C5").Value = Worksheets("入力").Range("D9").Value Worksheets("得意先").Range("D8").Value = Worksheets("入力").Range("E13").Value Worksheets("得意先").Range("F11").Value = Worksheets("入力").Range("F14").Value End sub これを、入力シートのD9にデーターを入力しEnterを押すと得意先シートのC5に転記される。 同じく入力シートのE13,F14も同じくEnterを押すとデーターが転記されるようにしたいのですが教えていただけませんか。 よろしくお願いします。。 この記事にはVBAのコードが含まれています。 緑の太文字→注釈 茶色の太文字→条件分岐 赤の太文字→ループ 青の太文字→その他 |
■■ □投稿者/ 匿名 -(2025/06/19(09:08)) □U R L/ Worksheet_Changeイベントについて調べてみてください。 VBAの質問であれば、一般操作ではなく、 VBAの方に掲載してください。 |
■■ □投稿者/ 半平太 -(2025/06/19(09:26)) □U R L/ >データーを入力しEnterを押すと 「入力シートの値が変わったら」とほぼ同義だとすると、 入力シートのシートモジュールの方に下記コードを貼り付けて置く。 Private Sub Worksheet_Change(ByVal Target As Range) Dim Src, Dst, i As Long Src = Split("D9,E13,F14", ",") Dst = Split("C5,D8,F11", ",") For i = 0 To UBound(Src) If Not Intersect(Target, Range(Src(i))) Is Nothing Then Worksheets("得意先").Range(Dst(i)) = Range(Src(i)).Value End If Next End Sub ちなみに、ここは一般機能板なので、上案で解決しない場合は、 VBA板に移動してください。 |