• ベストアンサー

ユーザーフォーム上のコンボボックスのリンク先はどうやって指定?

エクセル97です。ユーザーフォームにおいたコンボボックスに表示させたいワークシート上のリスト、およびコンボボックスで選択された値をリンクさせたいセルの指定方法がわかりません。オプションボタンやチェックボックスのリンク先指定方法もわかりません。またユーザーフォームには「OK」「キャンセル」ボタンもないのでしょうか? エクセル95のときはダイアローグシートにコンボボックスを置き、コントロールの書式設定で簡単に指定が出来たのですが、97に変えてからは、敢えてエクセル5.0のダイアローグを挿入しないといけないようなので、出来ればユーザーフォームで作ってみたいのです。どうかよろしくお願いします。

  • moooon
  • お礼率70% (118/167)

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

  • ベストアンサー
回答No.5

こんにちは。エラーが出てしまったようですね。エラーは、ブック名とシート名の大文字・小文字・全角・半角の違いによって起こっていると思われます。まず、ブック名をブック1・シート名をシート1と変更してRowsourceプロパティーに次のように入れてみて下さい。 [ブック1.xls]シート1!A1:A10  1は、A全角でも半角でもどちらでもかまいませんが、もし全角でブック名を指定したのであれば、ローソースプロパティーも全角で入力します。これで、動作するはずです。 >また、ユーザーフォームではなく、ワークシート上にComboBoxを置いた場合、プロパティウィンドウのには「RowSouce」の表示はなくなり、「ListFillRange」の右隣に表示したいセル番地を a1:a10 のように入れれば表示され、ComboBoxで選択した値は「LinkedCell」の右隣に入れたセル番地(たとえば e5)に表示されますよね? この「LinkedCell」にあたるのはユーザーフォーム上のComboBoxのプロパティウィンドウではどこなのでしょうか?No3で書かれたようなマクロを記述するしかないのでしょうか? フォームオブジェクトは、どうも「LinkedCell」プロパティーに変わるプロパティーを持っていないようです。私は、コードを書く以外方法がないと思います。

moooon
質問者

お礼

ありがとうございました。 今度は大丈夫でした。 原因はセル番地でa1:a10と書いたことのようです。A1:A10でOKでした。 助かりました。

その他の回答 (4)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.4

問題を理解できてないかもしれませんが、 ワークシートに直接貼り付けたコンボボックスと同じ だと思いますが、コントロール(この際コンボボックス) を右クリックし、プロパティをクリック。LinkedCellと ListFillRangeがありますが、ここにRange(B1とかA1:A10とか)を入れて試して、実見してみてください。察するに、質問がVBAベースでの事でなく、操作ベースのことなのではないのでしょうか。 リストボックスもオプションボタンもチェックボックスもLinkedCellがプロパティにあります。後者2者はTrue かFalseで値がセットされると思います。

moooon
質問者

お礼

早速ありがとうございます。 ワークシート上にComboBoxを置いた場合はそうでした。 しかしユーザーフォーム上に置いた場合は、プロパティウィンドウのには「ListFillRange」や「LinkedCell」の表示はないんです。「ListFillRange」にあたるのが「RowSouce」だろうとはNo1の方の回答で推測できましたが、「LinkedCell」にあたるのはユーザーフォーム上のComboBoxのプロパティウィンドウではどこなのでしょうか?

回答No.3

すみません。間違えて回答ボタンを押してしまいました。 >コンボボックスで選択された値をリンクさせたいセルの指定方法がわかりません。 Workbooks("ブック名.xls").Worksheets("シート名").Range("セル番地").value = フォーム名.コンボボックスのオブジェクト名.text 例えば、商品というブックのシート1のA3にコンボボックスの値を代入したい時は、 Workbooks("商品.xls").Worksheets(1).range("A1").value = Userform1.combobox1.Text これを続けて書いて下さい。指定したセル番地にコンボボックスの値が入力できます。 頑張ってみて下さい。

回答No.2

すみません。間違えて回答ボタンを押してしまいました。 >コンボボックスで選択された値をリンクさせたいセルの指定方法がわかりません。 Workbooks("ブック名.xls").Worksheets("シート名").Range("セル番地").value = フォーム名.コンボボックスのオブジェクト名.text これで、指定したセル番地にコンボボックスの値が入力できます。 頑張ってみて下さい。

回答No.1

初めまして。 まずコンボボックスにデータをリンクさせる方法は、次のように操作します。 ・フォーム上のコンボボックスをクリックし選択した状態で、画面左下にプロパティーウインドウ(もし表示されていない時は、VBE画面のメニューバーの表示→プロパティーウインドウを順にクリック)のRowSourceプロパティーの右側にリンクさせたいセル番地を入力する。 リンクさせたいセルがA1~A50の時 [ブック名]シート名!A1:A50と入力する。 >オプションボタンやチェックボックスのリンク先指定方法もわかりません。 この意味がよく理解できません。オプションボタンやチェックボックスを何とリンクさせたいのか教えて下さい。 >またユーザーフォームには「OK」「キャンセル」ボタンもないのでしょうか? これは、コマンドボタンを貼り付けて自分で作ればいいのです。フォームには、コントロールを自分で配置しなければなければなりません。 後、よくVBAのことが理解できていないようですが、非常に詳しくかつ解りやすく説明してある本があるのでご紹介いたします。 簡単プログラミングエクセル2000VBA(基礎編・関数偏・応用編) 著者:大村あつし  出版社:技術評論者 この本は、ラオックスなどパソコンを扱っているショップの書籍コーナーにあると思います。一度ご覧になって見て下さい。

moooon
質問者

お礼

早速ありがとうございます。 ユーザーフォーム上のComboBox1を選択し、プロパティウィンドウの「RowSouce」の右隣に、半角小文字 [book1.xls]sheet1!a1:a10 と入れてみましたが、「Row Souceプロパティを設定できません。プロパティの値が不正です。」となってしまいます。 何がまずかったのでしょうか? また、ユーザーフォームではなく、ワークシート上にComboBoxを置いた場合、プロパティウィンドウのには「RowSouce」の表示はなくなり、「ListFillRange」の右隣に表示したいセル番地を a1:a10 のように入れれば表示され、ComboBoxで選択した値は「LinkedCell」の右隣に入れたセル番地(たとえば e5)に表示されますよね? この「LinkedCell」にあたるのはユーザーフォーム上のComboBoxのプロパティウィンドウではどこなのでしょうか? No3で書かれたようなマクロを記述するしかないのでしょうか?

関連するQ&A

  • エクセル、コンボボックス/フォームのとコントロールツールボックスの

    エクセル2000です。 今まではワークシートにフォームのコンボボックスを貼って使ってきました。 でも色を変えたり出来ないので、今度はコントロールツールボックスからコンボボックスを貼ってみました。 質問ですが、コンボボックスに表示させるリストを設定するのに、これまでのフォームのコンボボックスだと書式設定で入力範囲をカーソルをあてて一度に簡単に指定できたのですが、コントロールツールボックスのコンボボックスだとそれが出来ません。VBEditorのプロパティのところのListFillRangeの右側にいちいち手でSheet1!A1:A5のように打ち込まなければならないようです。これではけっこう手間がかかってしまいます。 わたしのやりかたが間違っているのでしょうか?

  • ユーザーフォームのコンボボックス

    エクセルのユーザーフォームでの質問です。 コンボボックスの項目についてsheet2のB2~B10を選択したいのですが、このユーザーフォームはsheet1で使うもので、プロパティのrowsource欄にセルを選択できません(やり方が分かりません)。 どう入力したら別シートのセルをコンボボックスに反映出来るのでしょうか??

  • ユーザーフォーム上にコンボボックス作成

    ここの書き込みでも何度も書きましたが、まだ解決できません。 sheet1:にボタンをクリックすると、ユーザーフォームが現れ、その上にコンボボックスを作成しました。 sheet2:には、リストの項目を書いています。それをコンボボックスに表示させたいのですが、上手くいきません。すいません何度、本当に知りたいです 下記を記述しても表示できません。 Private Sub 記入フォームAC_Initialize() For I = 0 To 7 コンボA.AddItem Worksheets("データ").Cells(I + 2, 2).Value Next End Sub

  • ユーザーフォームでのコンボボックスについて。

    同じような内容の質問を探したのですが、解決の糸口がつかめず質問させていただきます。 VBAは初挑戦なんですが、本とネットではなかなか理解しづらいところがあって・・・。 自分の作っているフォームとは多少違いますが、説明を簡単にするために例を挙げさせていただきます。 まずSHEET1において、ユーザーフォームに3つのコンボボックスを配置しています。それぞれ、「月」「日」「曜」とします。 これを、SHEET2においてあるリスト「1~12」と「1~31」「月~金」にそれぞれ反映させたいのですが。 それを一つめのデータとして、「月」をA1、「日」をB1、「曜」をA2にそれぞれ配置して、二つめのデータはA3から始めたいのですが。 あともうひとつ。 SHEET3に表紙をおいて、コマンドボタンを配置し、そのボタンをクリックすると、SHEET1が開くと同時に、上記のユーザーフォームが出るってコトはできるのでしょうか? ややこしくてすみません。 よろしくお願いします。

  • エクセル コンボボックスについて

    XP エクセル2003なのですが、 現在ワークシートに郵便番号と住所のリストを作成しています。    郵便番号     住所  ***-**** ○○県○○市・・・  ***-**** XX県XX市・・・ ユーザーフォームにテキストBOXとコンボBOXとコマンドボタンを 配置しています。 コンボBOXではリストにしている住所のみを表示していますが、 その中から探すのが大変です。そこで、 テキストBOXに郵便番号を入力し、 コマンドボタンをクリックすると、 コンボBOXに該当する住所が表示されるようにしたいのですが、 どうすればいいのか、何から始めればいいのか、 全く分かりません・・・。いろいろな方法があると思うのですが、 教えていただければ幸いです。 初心者ですので質問形式が悪いかもしれませんが よろしくお願いします。

  • EXCEL ユーザーフォームを使ったマクロ

    データの登録をするのにユーザーフォームを使おうと思うのですが、なかなかうまくいきません。教えてください。 ユーザーフォームにはコンボボックス、テキストボックス、コマンドボタンが貼り付けてあります。(コンボボックスのリストには呼び出したいシートの名前が入っています) コンボボックスのリストの中から呼び出したいシートを選択し、テキストボックスに入力した内容を、コマンドボタンを押すことで選択されたシート上の、あるセルに登録したいのですがどうすればよいでしょうか?

  • エクセルのコンボボックスの内容にリンクをはるには?

    お世話になります。 エクセルにフォームを置いています。 そのフォームにはコンボボックスがあります。 コンボボックスの内容は別シートより読み込んでいます。 コンボボックスである内容が選択されたときに、 その選択内容にリンクを貼り、別シートにあるリンク先へ 飛ぶようにするにはどのような仕組みが必要でしょうか。 よろしくお願いします。

  • コンボボックスの設定  【エクセル】

    エクセルのコンボボックスについてです。 コンボボックスのリストとして 赤 青 黄色 というリストをコンボボックスの‘入力範囲’に指定します。 コンボボックスの ‘コントロールの書式設定’→‘リンクするセル’ でセルを指定すると、赤を選んだとき リンクさせたセルには 「1」とでますが、なぜ1と出るのか、というのと 私は「赤」と表示させたいのですが、そのやり方を教えて頂きたいです。 コンボボックスを初めて使うので初心者的な質問だと思いますが宜しくお願いします。

  • Excel VBA ユーザーフォームのコンボボックスに表示する値の入力方法

    Excel Xを使用して、VBAのユーザフォームにコンボボックスを作りましたが、どうしてもコンボボックス内に表示する値の入力方法が分かりません。 WEBや本などで「これ」と思われるものを実験していますが、どれも表示することができません。 できるだけ詳しく教えていただけませんか? したいことは、  cbocenter というコンボボックスに値を出します。  値は List シートの A2 から A18 に入力済みです。  それと値から選択した値を data シートの J列 に  表示させたいのです。(行の指定はできています) 本当に困ってます。よろしくお願いします。

  • コンボボックスの自動更新について

    コンボボックスの自動更新について エクセルのVBAで、ユーザーフォームを使用しています。 ユーザーフォームの中には「入力」ボタンとコンボボックスと テキストボックスがあります。 コンボボックスは、「ABCDEF」と6つのリストがあります。 ユーザーフォーム起動時には、コンボボックスは空欄で コンボボックスから、入力したい商品を選んで、入力ボタンを押して コンボボックスとテキストボックスの内容を入力・コンボボックスを 空欄に戻しています。 これを、「A」を選んで入力ボタンをおしたら「B」が選ばれる。 「B」を選んで入力ボタンをおしたら「C」が選ばれるといったように コンボボックスに表示されるリストを自動で更新することは できないでしょうか? Select case などを利用して組み立てようとしたのですが、 数時間以上調べても出来ません。 教えていただけると助かります。

専門家に質問してみよう