- ベストアンサー
Excel2010 VBA
Excel2010でVBAのフォームを使って「コマンドボタン」をクリックしたときにフォーム入力した内容をデータ(リスト)に転記(反映)させたいのですが どのようにしたらいいでしょうか? コマンドボタンの作り方は分りましたがそのマクロを実行する内容(コード)の作り方がいまいちわかません ちなみにデータ(リスト)は上から順番に空白の列を埋められていけばいいです よろしくお願いします
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
再掲: >どうしてもできないところは,改めて具体的な困っている様子と具体的な状況を添えて,新しいご質問として投稿し直して下さい。 当初のご質問が解決したら,ご相談は一度解決で閉じてください。とお話ししました。ヒトの話聞いてますか? 新たな疑問質問問題点は,「ついでに聞いちゃえ」でダラダラ続けるんじゃなく,状況を整理して新しいご相談として投稿し直してください。これはこちらのような質問相談掲示板ではごくごく一般的なマナーなので憶えておいてください。 #今回のように「ついでにあれもこれも教えて」ご相談があんまり多くて,ほとほとうんざりさせられています。 無視してほっぽっとこうかとよっぽど思いましたが,気を取り直して。 >コマンドボタンを連続でクリックすると次々にデータが入力されていきます 記入するボタンをクリックすれば,データが記入される。 ごくアタリマエの動作です。 データがあってボタンをクリックしたのに転記がされない方が,困った事態です。 で,裏を返せば: private sub commandbutton1_click() dim r as long dim i if me.textbox1 = "" then exit sub r = worksheets("Sheet1").raneg("A65536").end(xlup).offset(1).row worksheets("Sheet1").cells(r, "A").value = me.textbox1.value worksheets("Sheet1").cells(r, "B").value = me.textbox2.value worksheets("Sheet1").cells(r, "C").value = me.textbox3.value for i = 1 to 3 me.controls("textbox" & i) = "" next i end sub
その他の回答 (1)
- keithin
- ベストアンサー率66% (5278/7941)
あなたの言ってる「フォーム」は,ユーザーフォーム(UserForm1など)で間違い無いのでしょうか。 そういう前提で userform1にtextbox1からtextbox3とcommandbutton1が配置してあり, commandbutton1をクリックするとtextbox1,2,3のデータをSheet1のABC列に記入します (こういう具合に目に見えるように具体的に説明すると,ようやく具体的なマクロが書けます。今後のご参考に) コマンドボタンを右クリックしてコードの表示を選び,現れたシートに下記をコピー貼り付ける private sub commandbutton1_click() dim r as long r = worksheets("Sheet1").raneg("A65536").end(xlup).offset(1).row worksheets("Sheet1").cells(r, "A").value = me.textbox1.value worksheets("Sheet1").cells(r, "B").value = me.textbox2.value worksheets("Sheet1").cells(r, "C").value = me.textbox3.value end sub 「実はそうじゃない」部分についても適宜応用して,まずご自分で作成してみて下さい。 どうしてもできないところは,改めて具体的な困っている様子と具体的な状況を添えて,新しいご質問として投稿し直して下さい。
お礼
ありがとうございました。 お陰様でその通りやってできました! そして次の課題もでてきました… コマンドボタンを連続でクリックすると次々にデータが入力されていきます これを避ける方法はないのでしょうか? 例えば一回コマンドボタンをクリックしたらユーザーフォームが閉じるとか…
お礼
ありがとー! できたぜ!