• ベストアンサー

エクセルVBAユーザーフォームからブックへの入力

ham_kamoの回答

  • ham_kamo
  • ベストアンサー率55% (659/1197)
回答No.2

「テキストボックス毎にボタンをつける」ではなく、 「全てのテキストボックスの内容をセルに反映させるボタンを1つつける」です。 (もちろん、テキストボックス毎につけてもいいのですが) 項目が40以上あるのですよね。だいたいはTextBoxだと思いますが、それぞれにオブジェクト名がついています。フォーム上でTextBoxを選択したら、左のプロパティ欄の(オブジェクト名)というところに名前が出ます。自分で変更してなかったらTextBox1とかついているはずです。(普通はプログラム内でわかりやすいように自分で変えますが) それらに入力されたをまとめてブック上のセルに転記するボタンを「1つ」作るのです。(ボタンの作り方はわかりますよね?) そしてボタンを押した時の処理として、No.1で回答したように、セルにテキストボックスの内容を代入する文を、テキストボックスの数だけ書いていけばいい、ということです。 エラーハンドリングとは、不正な値が入力されたり、省略してはいけない項目が空の場合をチェックしてエラーメッセージを表示する、といったようなことです。プログラムを作る上で非常に重要です。

get3
質問者

補足

ていねいなご回答ありがとうございます。 なんとか入力できました。よく数えたら105項目ありました・・・。 この1つのブックを作成するのに指示された形にかなり遠いので、まだまだ勉強しなければいけないと思うのですが、いいサイトや本はありませんでしょうか? いちいち全部質問していたらきりがないような気がして・・・。時間がないのでじっくり作っていく事もできませんし・・・。 例えば、このフォームは毎日の日報を入力するのですが、フォーム内に日付が自動で表示させる欄があり、1度確定させたら次の日のフォームに移る、という事は可能なのでしょうか?あと確定させてエクセルのシートに移ったら人が触れない形、PDFファイルに変換して表示させるとか・・。できるかどうかも分からない事だらけなんです。 すみません、よろしくお願いします。

関連するQ&A

  • エクセルVBAのユーザーフォーム

    こんばんは、エクセルVBAでユーザーフォームを作成しました。 そこに入力したものがブックに反映するわけですが、フォームに0(ゼロ)を入力した場合、ブック上のセルを選択すると0と入っているのですが、表示されません。なぜでしょう???? これができないとせっかく時間をかけて作ったのに、使えません。どなたかご存知の方よろしくお願いします!!!!

  • EXCEL VBAでユーザーフォームを使ってデータを入力したい。

    EXCEL VBAでユーザーフォームを使ってデータを入力したいと思っています。(ユーザーフォームはできています。) 入力項目が4項目あります。 名前 作業コード 開始時間 終了時間 上記4項目と登録ボタンです。 sheet1にユーザーフォームを表示し sheet2の A1に名前 B1に作業コード C1に開始時間 D1に終了時間が 登録ボタンを押すごとに どんどんデータを記録していきたいのです。 VBA初心者ですのでコードがよくわかりません。 ご教授ください。よろしくお願いいたします。

  • エクセルVBAのユーザーフォーム

    おはようございます! エクセルVBAにてユーザーフォームを作りました。(通常フォーム以外からの入力をしないように保護してあるので)ファイルを開いたときにまずフォームを立ち上げるのですが、フォームからの値が反映するように下記の通りパスワード解除のボタンを作りました。 Private Sub CommandButton5_Click() Worksheets("○○◎").Unprotect Password:="××" End Sub こんなファイルをweb上で公開して他の人に数値を入力させようと思っている次第なのですが・・・。 PCで作っているときはうまく動作するのですが、webにのせたものだと上記のボタンを押すとエラーになります。 実行時エラー'1004' 'Worksheets'メソッドは失敗しました:'_Global'オブジェクト とでているのですが、これはどういう意味でしょう??? 初心者なもので全く分からず作っています。 どなたか教えて下さい!!! よろしくお願い致します。

  • エクセルVBA「ユーザーフォーム→セルへの入力」ほか

    エクセルVBA「ユーザーフォーム→セルへの入力」ほか 連日の質問にご回答頂き大変に感謝しております。 昨日投稿したユーザーフォームからのセルへ入力に関する質問です。 下記画像のようなユーザーフォームを作成したのですが、「合計」の数値をワークシートの("コンボボックスの文字列:"「番号(この場合01)」")のセル番地に入るように組みたいのですが、どんなコーディングがよろしいでしょうか。(つまり、画像の場合は「1年2組」列の「01」行に「合計」の値を入力したいのです) さらにもう一点質問致します。 VBAとそうでない部分両方の質問となるのですが、見ての通り私ベルマークを集計するためのブックを作成しています。 ベルマークの枚数を集計する方法が思いつかないのですが、ユーザーフォームを利用して、ベルマーク番号別の「点数別(0.1点・0.2点・・・)枚数」を計算したいのですが、どのようなコーディング、また、シートを作れば良いのでしょうか。お知恵を貸して頂けると幸いです。 以上ご回答いただけるとうれしいです。よろしくお願いします

  • EXCEL VBA 共有ファイルと入力フォーム

    データ入力を複数人で行うため、素のデータBook Aと入力フォームを持つBook Bがあります。 Book Bを開くと自動的にBook Aを開き、入力フォームでデータをBook Aにデータを入れていくVBAを作成しています。 EXCELのフォームはそのBook上での起動でPopUP的に表示されます。(Book Bのシート表示上でフォームが表示される) ユーザーからの要望で、Dataの入力状況を確認しながら、入力したい。つまり、Book Aのデータシートを背面に表示して、その上に入力フォームを表示したい。(入力フォームは常に手前に表示したい) 同じBooK内ならデータシートをセレクトしてフォームを開けばいいのですが、このような場合には、どうしたらいいでしょうか? お知恵をお貸しください。

  • エクセルVBA ユーザーフォームの終了について

    エクセルVBAでユーザーフォームを作成しています。 コマンドボタンにVBAマクロを割り当てしているのですが 思うように動いてくれないので質問します。 コマンドボタンをクリックしたら望む動作 1、ワークシートを選択 2、その後、ユーザーフォームを消す。 と言う動作にしたいのですが、2の ユーザーフォームを消す方法、書き方が分かりません どなたか教えていただけないでしょうか 1の動作は以下のように書いています。その後の書き方を お願いします。 Private Sub CommandButton8_Click() ブック名 = "VBA演習" シート名 = "sheet1" Workbooks(ブック名 & ".xls").Worksheets(シート名).Activate End Sub (ユーザーフォームの名前は"テストフォーム"としてます)

  • エクセル VBA ユーザーフォームで検索したいのですが

    つい昨日触り始めた大初心者です。。 エクセルシートにて 数値を記した列と、詳細を記した列があります。 ユーザーフォームにて textboxに数値を入力し、ボタンをクリックすると 検索をして、ユーザーフォーム内のlabelに詳細が表示される、といったvbaを書いているのですが、どうにもうまくいきません。 また、textboxに検索範囲にない数値が入力されたときには Labelに「なし」と表示させたいのですが、 エラーが出てしまい、その処理もやはりうまく出来ません。 どなたかご教授いただけますでしょうか。

  • ExcelのVBAについて

    すみません、ご教授下さい。 エクセルVBAで簡単な住所録のようなものを作りたいのですがご教授頂けますでしょうか? 内容としては、シート1に入力フォームがあり、登録ボタンを押すと シート2へ一覧していく形です。 また、シート2に一覧していく際は新しいものが上に挿入され、 入力フォームはクリアされるという形になります。 シート1   A    B 1 顧客ID AAA 2 姓    サンプル 3 名    太郎 4 TEL   080-0000-****  →これ以降も項目を増やします。 シート2     A    B      C     D 1 顧客ID   姓     名    TEL 2  AAA   サンプル 太郎 080-0000-**** ご教授頂けますでしょうか? 何卒宜しくお願い致します。

  • VBAエクセルのフォームについて

    お世話になっております。 VBAエクセルのフォームについて教えていただきたいのです。 VBAで入力のフォームを作ったのですが(TEXT BOXが4つ、コマンドボタン1つ、コマンドボタンを押したときに登録される用にしたい) 各シートの集計にしたい為、各シート(31のシートがあります)に入力フォームがあります、その各シートでの入力結果を1つのシートに 集計したいのですが、どの様なコードにしたらようか判りません。 素人のためお手数ですが、なるべく判りやすくお願いします。 よろしくお願いします。

  • Excel VBA ユーザーフォームについてs

    ExcelVBAでユーザフォームを作成していますが行き詰まっています。 お助け下さい m(__)m VBAの処理内容を新Sheetへ保存し、 その内容をユーザフォームへWorkSheetとして表示させて エンドユーザに直接編集してもらおうと思っています。 ユーザフォームの『コントロールの追加』で「Microsoft Office Spreadsheet XX.X」を追加して 空のWorkSheetを追加することは出来たのですが、 このWorkSheetを空でなく前出の処理内容を反映したSheetにすることは出来るでしょうか? VBA処理 ⇒ 結果反映WorkSheet(1)作成 ↓ ユーザフォーム表示 : (1)を表示したい よろしくお願いします。