- ベストアンサー
Excelで入力が反映されるものを作りたい
助けてください。 作りたいプログラムは、まずエクセルで入力画面を作ります。 (1)名前(2)生年月日(3)住所(4)備考 の入力画面がほしいです。マクロかなんかでできるでしょうか? マクロでなくてもだれでも簡単に入力できればいいのですが・・・ その後、これらの入力がされて決定ボタンを押すと、 別シートに作成した表の中にこれらを順に表示していきたいのです。 (1)名前で入力された項目はシート2のA1セル (2)生年月日で入力された項目はシート2のB1セル (3)住所 〃 項目はシート2のC1セル (4)備考 〃 項目はシート2のD1セル に入力されるようにしたいのです。 その他、最初の入力画面に 『 』行目 という項目を作って、そこに『2』と打てばそれぞれシート2の2行目に同じことを出力したいのですがどうすればいいのでしょうか? 手順等、作り方まで教えていただけると本当に嬉しいです。 どなたか知っている方がいましたら助けてください。 お願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは。 >これらの入力がされて決定ボタンを押すと、 という言葉があるとおり、やはり程度の高い低いはあっても、マクロになるのではないか、と思うのです。 マクロを作って貰うにしても、もう少し具体的に、ご自身で、入力などの手順をはっきりさせることですね。つまり、設計図ですね。 以下は、例です。 シート1のセルのA2 ~ D2 を入力する場所と決めます。 A1 ~ D1 は、つまり、タイトル行です。 Sheet1 A B C D 1 名前 住所 生年月日 備考 2 a b c e コントロールツール・バーを出して、その中からボタンをクリックして、シート上で、+になったカーソルで、ドラッグして、ボタンを作ります。 -ボタンを右クリック-コードの表示 で出てきたVBEのコードウィンドウに以下を貼り付け、Alt + Q で閉じます。 次に、ツールバーの青い三角定規が凹んでいますから、それをクリックして、編集モードを終了し、コントロールツールバー自体も隠します。 '<シートモジュール> '------------------------------------------ Private Sub CommandButton1_Click() If WorksheetFunction.CountA(Range("A2:C2")) <> 3 Then MsgBox "入力項目が足りません。", vbCritical: Exit Sub End If 'メニューのコピー If WorksheetFunction.CountA(Worksheets("Sheet2").Rows(1)) = 0 Then Range("A1:D1").Copy Worksheets("Sheet2").Range("A1") End If Range("A2:D2").Copy Worksheets("Sheet2").Range("A65536").End(xlUp).Offset(1) Range("A2:D2").ClearContents End Sub '------------------------------------------ >そこに『2』と打てばそれぞれシート2の2行目に同じことを出力したいのですがどうすればいいのでしょうか? それはできるけれども、上記は、自動的にシート2の上から順に、つけたししていきます。 なお、名前、住所、生年月日を書かないと、コピーされません。コピーし終わると、削除されます。
その他の回答 (1)
こんばんは。 簡単なのは データ→フォーム でしょう。 表のどこかを選択しておいて、フォームを使うといいでしょう。
補足
データ→フォームについてやってみたのですが、よくわからず教えてもらいたいのですが・・お時間があれば何ができるのでしょうか?? もしご回答願えるならお願いいたします。