Excel VBAについて
Excel VBAについて
VBA初心者ですが、作業で使うファイルを使いやすくしようと思っているのですが行き詰ってしまいました。
是非、知恵をお貸しいただきたいと質問させていただきました。
フォームを使ってデータを打ち込むようにしようと思っています。
日付の列を選択するとフォームが立ち上がり、必要項目を記入するというものです。
日付欄が未記入なら「新規」、記入済みなら「修正」
という風にしたいのですが、うまくいきません・・・
修正しようと入力しなおしても新規として新しい行に書かれてしまいます。
色々と自分で勉強して下のような書き方をしましたが、何がいけないのでしょうか。
ご指摘おねがいいたしますm(__)m
Public Sub KAKIKOMI(GYO As Long)
GYO = ActiveCell.Row
Load UserForm1
With UserForm1
If ((GYO = 17) Or (Cells(GYO, 3).Value = "")) Then
GYO = 17
.hiduke.Text = ""
.bunnrui.Text = ""
.tantou.Text = ""
.gaku.Text = ""
.memo.Text = ""
Else
.hiduke.Text = Cells(GYO, 3).Value
.bunnrui.Text = Cells(GYO, 7).Value
.tantou.Text = Cells(GYO, 8).Value
.gaku.Text = Cells(GYO, 9).Value
.memo.Text = Cells(GYO, 11).Value
.ComboBox1.Text = Cells(GYO, 5).Value
End If
g_swOK = 0
.Show
If g_swOK <> 1 Then GoTo TOUROKU_EXIT
If GYO = 17 Then
GYO = 19
Do While Cells(GYO, 1).Value <> ""
GYO = GYO + 1
Loop
End If
ActiveSheet.Unprotect
Cells(GYO, 3).Value = Trim$(.hiduke.Text)
Cells(GYO, 7).Value = Trim$(.bunnrui.Text)
Cells(GYO, 8).Value = Trim$(.tantou.Text)
Cells(GYO, 9).Value = Trim$(.gaku.Text)
Cells(GYO, 11).Value = Trim$(.memo.Text)
ActiveSheet.Protect
End With
End Sub
ちなみに、17行目が見出しで、3列目が日付欄です。
よろしくお願いします。
お礼
keithin様 お世話になります。 回答どおりのことをしたら問題が 解決しました。 助かりました。 ありがとうございます。