• 締切済み

Excel VBAフォーム 登録ボタンの作成方法

いつもお世話になっています。 初めて、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

みんなの回答

  • hirotn
  • ベストアンサー率59% (147/246)
回答No.1

質問の詳細化を図りたく伺います。 ・フォームに複数のテキストボックスなどがあり、登録(コマンド)ボタンをクリックするとそれがワークシート上に転記される、というイメージでしょうか ・「登録」ボタンをクリックした後はどのように動くことを期待していますか? →たとえば、ワークシートの次の行へ追加するために   ・フォームのデータをクリアし、   ・ワークシートのオフセットを移動する   とか。 ・Cmd_1, Cmd_2...は特定のコンポーネント(たとえば、コマンドボタンのクリックイベント)と関連づいていますか? 初めてということなので、一応記載しますと、 フォームのデザイン画面で「登録」ボタンをダブルクリックすると、コマンドボタンのクリックイベント(ボタンがクリックされたときに呼び出されるブロック)を実装するエディタが開きます。 そこに、ワークシートに入力したい内容をプログラムします。

suzupen
質問者

お礼

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

suzupen
質問者

補足

御回答いただきありがとうございます。 ・「登録」ボタンをクリックした後はどのように動くことを期待していますか? →たとえば、ワークシートの次の行へ追加するために   ・フォームのデータをクリアし、   ・ワークシートのオフセットを移動する   とか。 ・Cmd_1, Cmd_2...は特定のコンポーネント(たとえば、コマンドボタンのクリックイベント)と関連づいていますか? 一つの操作を一つのボタンに関連づけて実行することはできるのです。 ただ、一つ一つの操作を一つのボタンで実行するとなると、 強引ですが、callで呼び出して次々実行、そして次の分でデータをクリアしか 思い浮かびません。 ↓これは、資料を参考にしたものです。 For Each Ctrl In Controls   If TypeName(Ctrl) = "TextBox" Then Ctrl.Value = "" Next Ctrl それでも動くので問題ないのかもしれませんが、どうもすっきりしません。 納得のいくスマートな記述があればどうか教えてください。 よろしくお願いいたします。

関連するQ&A