- 締切済み
エクセルのフォームをVBAで作るには?
セルの項目が多い場合 一般のフォームでは使えないようですが、 http://www.eurus.dti.ne.jp/~yoneyama/Excel/input_form.htm ここにあるフォームをVBAで作るとしたらどうすればいいのでしょうか? 教えてください。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17069)
質問表現注意 フォームー>データーフォームのフォーム (注)フォームの使われ方 (1)一般会話や文章内で文書の構成などスタイル (2)コンピュターなどで印刷する項目と位置を決めた帳票(物理的) (3)表を作るときの項目と配置、罫線など画面のレイアウト(ソフト的) (4)VBAなどのユーザーフォームなどプログラム言語上で、コントロールなどを配置できるウインドウ。VBのフォームなど。 (ウインドウズ上で作る場合のもの) (5)エクセルでの、「データ」メニューの下のフォーム ーー >セルの項目が多い場合 あいまいな表現をせず、おおよその数の目安を書くべきでしょう。 やってみると、30列ぐらいだと、画面に収まるが。 ーーー >VBAで作る Sub Macro2() Range("a1:C1") = Array("A", "B", "C") Range("a1:C2").Select Application.DisplayAlerts = False ActiveSheet.ShowDataForm Application.DisplayAlerts = True End Sub 項目内容(見出し)の数は増やすこと。 ーーー 削除や変更まで盛り込むことは初心者には難しい。 だから最下行の下に追加処理だけにとどめるべきでしょう。 上記のようなことでなければ ユーザーフォームを1つシートに貼り付け(挿入ーユーザーフォーム) テキストボックスを項目数だけ、ユーザーフォームに貼り付け。 入力完了のコマンドボタンを1つ貼り付け。 そのコマンドボタンのクリックイベントに (プリミチブなカタチだが) Private Sub CommandButton1_Click() Set d = Range("a65536").End(xlUp).Offset(1, 0) d.Offset(0, 0) = TextBox1.Text d.Offset(0, 1) = TextBox2.Text d.Offset(0, 2) = TextBox3.Text '--- TextBox1 = "" TextBox2 = "" TextBox3 = "" TextBox1.SetFocus End Sub のようなもので出来る。
- n-jun
- ベストアンサー率33% (959/2873)
ユーザーフォームを作成した事はまだないように見受けられますが。 http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_userform.html http://moug.net/tech/exvba/0091.htm こう言ったサイトを参考に作成しては如何でしょう。 オリジナルで何かをさせるって言うのは経験を積まないと難しいですが、頑張って下さい。