• ベストアンサー

Excel Worksheet_Chang

早速ですが、セルD9~D40の間で入力したら、隣のセルE9~E40にH3を代入。 また、セルF9~F40の間で入力したら、隣のセルG9~G40にH4を代入。 有給管理で取得後の残りの有給日数を記録するために関数でしてしまうとすべて同じ答えになってしまうので(様式的に)、セルの値を別のセルに転記する仕組みを教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.1

D列及びF列のデータを入力したらH3,H4の値が変化して、関数だと過去のE列G列まで変化してしまうので過去分は固定したいということでしたら Private Sub Worksheet_Change(ByVal Target As Range) Application.EnableEvents = False If Not Intersect(Target, Range("D9:D40")) Is Nothing Then Target.Offset(0, 1).Value = Range("H3").Value ElseIf Not Intersect(Target, Range("F9:F40")) Is Nothing Then Target.Offset(0, 1).Value = Range("H4").Value End If Application.EnableEvents = True End Sub

thincl
質問者

お礼

kkkkkmさん 回答ありがとうございます。 後、D,F列を消したら、E,Gも消えるという機能も 教えてください。

その他の回答 (1)

  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.2

> 後、D,F列を消したら、E,Gも消える Private Sub Worksheet_Change(ByVal Target As Range) Application.EnableEvents = False If Not Intersect(Target, Range("D9:D40")) Is Nothing Then If Target.Value = "" Then Target.Offset(0, 1).Value = "" Else Target.Offset(0, 1).Value = Range("H3").Value End If ElseIf Not Intersect(Target, Range("F9:F40")) Is Nothing Then If Target.Value = "" Then Target.Offset(0, 1).Value = "" Else Target.Offset(0, 1).Value = Range("H4").Value End If End If Application.EnableEvents = True End Sub

thincl
質問者

お礼

勉強し始めたばかりで、いろいろ調べながら作っていたのでが、 うまく行かず、困ってました。 これからの学習の参考にさせていただきます。 本当にありがとうございました。

関連するQ&A