• 締切済み

Excelで作成したフォームからデータをシート上に反映したい

初心者です。 同じ形式のデータを、項目ごと(フォームでつくった入力欄ごと、って言い方でわかりますでしょうか)にセルに振り分けて、 上から順にシート上に入力していきたいのです。 VBAマクロをつかって作ってみたのですが、一つの行に対してしか反映しないものしか作れませんでした。 何か良い方法はありませんか?

みんなの回答

  • UChast
  • ベストアンサー率31% (7/22)
回答No.1

私も似たような作業をさせていますので、参考になれば幸いです。 例えば、入力フォームをUserform1、テキストボックスをtextbox1,2,3 と仮定した場合、それらの値を取得して、worksheet上に出力させる には以下のようなコードが有効かと思います。 一番左側のWorksheetのA,B,C列に順にデータが追加されます。 Dim EndRow as integer Dim i as integer Worksheets(1).activate EndRow = Cells(Activesheet.rows.count,1).end(xlup).Row For i = 1 to 3 cells(EndRow,i).offset(1,0).value = Userform1.textbox(i).text next i worksheet名, cells番地などはご自分の目的に応じて変更してください。 TextBox以外にも応用可能です。 頑張ってください。

参考URL:
'
yukh
質問者

お礼

早速のお答え、ありがとうございます!!o(^-^)o 週明け、試してみますね。 結果、ご報告させていただきます。

yukh
質問者

補足

先ほど試してみたのですが,(Private Sub OK_click の後に入力しました) 6行目 cells(EndRow,i).offset(1,0).value = Userform1.textbox(i).text の所でエラーが出ます。(メソッドまたはデータがみつかりません、というコンパイルエラーです) 指定した名前は合っていて、どれだけ訂正しても出てくるんですが、原因で思い当たることはありませんか? また、更に初歩的な質問で申し訳ないんですが、ワークシートから、作ったプライベートフォームはどうやって呼び出すんでしょうか? よろしくお願い致します。