• ベストアンサー

excel vba ユーザーフォーム

現在、セルa101からa110までに「商品名」、セルb101からb110までに「金額」が 入力済みです。 このデータを、ユーザーフォーム上にコンボボックスを2つ作成し、セルa1へ 商品名を選択後、入力。また、b2へ金額を選択後、入力させたいのです。 また、ユーザーフォーム上にテキストボックスを作成し、ここに入力した 「備考」の全角10文字をc1へ移動したいです。 今のところ、ユーザーフォーム、コンボボックス、テキストボックスを作成した だけで 立ち往生しています。 どなたか、ご教授お願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

ご説明の不明点: 1.A101以下から選ぶ商品とB101以下の金額は、「隣り合わせがそれぞれ対応する」んじゃなくて、コンボボックス1と2で「勝手に選ぶ」というお話なのか? 2.コンボボックスから選んだりテキストボックスに記入した後、いったい「いつ(=どういうタイミングで)」それぞれ対応するセルに転記したいのか? とりあえず次の通りにします。 ○コンボボックスの1と2は、それぞれ選択肢から「勝手に選んで良い」 ○ユーザーフォームに更に「コマンドボタン1」を配置し、それをクリックしたらセルに転記する  ついでに「記入を終えてない場合は記入を促し転記は行わない」ことにする 準備: UserForm1にComboBox1、ComboBox2、TextBox1、CommandButton1を配置する Combobox1と2それぞれについて、プロパティウィンドウを開きRowSource欄にSheet1!A101:A110、Sheet1!B101:B110のように「当然正しいシート名を添えて」記入する 手順: コマンドボタン1を右クリックしてコードの表示を開始 private sub CommandButton1_Click()  if me.combobox1 = "" or me.combobox2 = "" or me.textbox1 = "" then   msgbox "FILL IN DATA"   exit sub  end if  range("A1") = me.combobox1.value  range("B1") = me.combobox2.value  range("C1") = me.textbox1.value end sub のように作成する。

hebidoshi04
質問者

お礼

大変お世話になりました。 うまく出来ました。 また、お世話になるかもしれません。 その際はよろしくお願いします!!

関連するQ&A

専門家に質問してみよう