プロが教えるわが家の防犯対策術!

いつもお世話になっています。

初めて、Excelのフォームで入力画面を作りました。
複数の項目があって、それを最後に[登録]ボタンをクリックで
表に入れたいのですが、一度にまとめて実行する方法が分かりません。
アドバイスよろしくお願いいたします。

Private Sub cmd_1()
Dim i As String
If man.Value = True Then
ActiveCell = man.Caption
End If
If woman.Value = True Then
ActiveCell = woman.Caption
End If
ActiveCell.Offset(0, 1).Select
End Sub

Private Sub cmd_2()
Dim i As String
If man.Value = True Then
ActiveCell = Yes.Caption
End If
If woman.Value = True Then
ActiveCell = No.Caption
End If
ActiveCell.Offset(0, 1).Select
End Sub

Private Sub cmd_downlist()
Dim ListNo As Long
ListNo = group.ListIndex
ActiveCell.Value = group.List(ListNo, i)
ActiveCell.Offset(0, 1).Select
End Sub

Private Sub cmd_comment()
ActiveCell = comment.Text
ActiveCell.Offset(1, -3).Select
End Sub

A 回答 (1件)

質問の詳細化を図りたく伺います。



・フォームに複数のテキストボックスなどがあり、登録(コマンド)ボタンをクリックするとそれがワークシート上に転記される、というイメージでしょうか
・「登録」ボタンをクリックした後はどのように動くことを期待していますか?
→たとえば、ワークシートの次の行へ追加するために
  ・フォームのデータをクリアし、
  ・ワークシートのオフセットを移動する   とか。
・Cmd_1, Cmd_2...は特定のコンポーネント(たとえば、コマンドボタンのクリックイベント)と関連づいていますか?

初めてということなので、一応記載しますと、
フォームのデザイン画面で「登録」ボタンをダブルクリックすると、コマンドボタンのクリックイベント(ボタンがクリックされたときに呼び出されるブロック)を実装するエディタが開きます。
そこに、ワークシートに入力したい内容をプログラムします。

この回答への補足

御回答いただきありがとうございます。

・「登録」ボタンをクリックした後はどのように動くことを期待していますか?
→たとえば、ワークシートの次の行へ追加するために
  ・フォームのデータをクリアし、
  ・ワークシートのオフセットを移動する   とか。
・Cmd_1, Cmd_2...は特定のコンポーネント(たとえば、コマンドボタンのクリックイベント)と関連づいていますか?


一つの操作を一つのボタンに関連づけて実行することはできるのです。
ただ、一つ一つの操作を一つのボタンで実行するとなると、
強引ですが、callで呼び出して次々実行、そして次の分でデータをクリアしか
思い浮かびません。

↓これは、資料を参考にしたものです。
For Each Ctrl In Controls
  If TypeName(Ctrl) = "TextBox" Then Ctrl.Value = ""
Next Ctrl

それでも動くので問題ないのかもしれませんが、どうもすっきりしません。
納得のいくスマートな記述があればどうか教えてください。
よろしくお願いいたします。

補足日時:2013/07/05 09:30
    • good
    • 0
この回答へのお礼

前回は、御回答ありがとうございます。
もう一度、勉強し直して無事解決しました。
また機会がありましたらよろしくお願いいたします。

お礼日時:2013/07/12 10:34

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!