• ベストアンサー

VBAのユーザーフォームの使い方

DreamyCatの回答

  • DreamyCat
  • ベストアンサー率56% (295/524)
回答No.1

ふだんはVBAで worksheets("sheet1").combobox1. ...のように書きますね。 そのかわりに userform1.combobox1. とかMe.combobox1. ...のように書くだけです。 ただし、同じコントロールでも、シートとuserformで少しだけ プロパティが異なることがあります。

関連するQ&A

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

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

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

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

  • エクセルVBAのユーザーフォームのコンボボックス

    エクセルVBAのユーザーフォームのコンボボックスの入力と ファイルの保存で質問です。 エクセルVBAで ユーザーフォームのコンボボックスを使用して 1月から12月までを選択してもらい、 選択した月を コマンドボタン押した際に、 セルにその値を入力するような マクロを作成しようとしています。 またコンボボックスは標準で6月が表示されるようにしたいと思います。 ユーザーフォームのコードの一部です。 Private Sub UserForm_Initialize() Dim m As Integer For m = 1 To 12 UserForm1.ComboBox1.AddItem m Next ComboBox1.ListIndex = 6 Private Sub CommandButton1_Click() 'ユーザーフォームを閉じる Unload UserForm1 mold  '↑フォームを閉じた後に実行される標準モジュールのマクロ名です End Sub 標準モジュールのコード 名称 「mold」 Sub mold() ActiveWorkbook.SaveAs _ Filename:="C:\_" & UserForm1.ComboBox1.Text & "月", _ FileFormat:=xlOpenXMLWorkbook ActiveWorkbook.Close ThisWorkbook.Activate ' End Sub の様に作成して実行してみたのですが、 コンボボックスで11月を選択しても 6月のままのファイルになってしまいます。 どのようにしたら、 コンボボックスで選択した値を ファイル名として保存できるでしょうか? 全部のコードを記載しますと 長くなってしまうと思い、 関連するコードを記載して質問しました。 分かりづらい所もあるかと思いますが よろしくお願いします。

  • Excel VBA ある値が入力されたときだけユーザーフォームを出したいです

    ExcelのVBAを教えてください。 D15は、リストで入力する値を選択できるようになっています。 D15で選択された値によって、B15に反映されるようになっています。 たとえば、 D15の値をリストで105を選んだら、B15に「AAA」と入り、 D15の値をリストで109を選んだら、B15に「ccc」と入ります。 これらは、B15にIF関数が入っていて制御されています。 ところが、D15の値をリストで108と選んだ時だけ、B15に「BBB」と入る場合と「DDD」と入る場合の2パターンあり、これは人間の判断でどちらにするか考えるので、IF関数を使えません。 なので、 D15のリストボックスで108を選んだときだけ、 ユーザーフォームを出し(UserForm1.Show)、ユーザーフォームにBBBとDDDのコマンドボタンがあって、Tabでコマンドを選択し、Enterで確定し(マウスは使いたくない)、確定したコマンドの値をB15に反映させるようにしようと思いました。 ・・・が、ユーザーフォームを出すタイミングのVBAの組み方がわかりません。 D15の値をリストから選択する・・・というのは、他の方が作った仕組みなので変えることはできません。

  • excel vba ユーザーフォーム

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

  • VBAユーザーフォームで

     エクセルVBAでユーザーフォームより、テキストボックスで入力させたものをセルに表示させようとしています。  テキストボックスは1と2があり、テキストボックス1で入力した値の最初の5文字+固定値をテキストボックス2に自動で入力(表示)したいのですがなかなかうまくいきません。(自動入力後、手動で一部修正します。)  VBAをはじめたばかりの初心者ですが、どうぞよろしくお願いします。

  • VBA ユーザーフォームで

    VBAのユーザーフォームで、時間を入力し、何分だったかを出したいのです。 例えば、コンボボックス1~4を用意して、1にスタートの時間、2にスターの分、3にエンドの時間、4にエンドの分を入力し、エンドの時間からスタートの時間を引けば、何分かかったが出せると思うのですが、hhmm時間ではなく、mm分で出したいのですがそのようなことは出来ますか? コンボボックス1に、hhの意味を持たせて、2にmmの意味を持たせ、1と2を合わせると1つの時間(hhmm)になるようにしたいのです。そのような関数はありますか? また、コンボボックスに入力する際に、時間なので、2バイト入れれば次のコンボボックスにカーソルが移動するような制御はありますか? 宜しくお願いします。

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

    Excel VBAでユーザーフォームを作成しています。 ユーザーフォームで出力したファイル 「出力ファイルA」 ユーザーフォームで使用するファイル 「ファイルB」 を、起動していると必ず「インデックスが範囲内にありません」 といった内容のエラーが表示されます。 ユーザーフォームで使用するファイルの表示中に そのようなエラー画面が出てきても仕方がないと思うのですが、 ユーザーフォームはマルチ画面を作成したので ファイルは「出力ファイルC」も出すことができる仕様です。 また、「出力ファイルA」「出力ファイルC」は コンボボックスで選択した西暦がファイルの先頭に付くので (例:2014_出力ファイルA.xls) 必ず同じファイル名が出力されるとは限りません。 なので、そのようなエラーが表示されないようにしたいのですが可能でしょうか? また、特別なコードは記述していないのですが、 なのでボタンとかコンボボックスのコードを書けばよいのか・・・という感じなのですが、 どのように対処すればよいかわかりません。 それと、出力したファイルの内容を確認するためにアクティブには、 ユーザーフォーム画面を終了させるしかならず、 そもそもそうゆう仕様なのかがわかりません。 ユーザーフォームを作成するのは初めてなので初心者丸出しで お恥ずかしい限りなのですが、 どなたかアドバイスいただけますと幸いです。 こんな抽象的ですが、どうお伝えすればよいのかがそもそもわからず困っていて、 それに時間もなく頭を抱えているので お手柔らかに願います。 よろしくお願い致します。

  • エクセルVBAについて質問です。

    エクセルVBAについて質問です。 シート1のユーザーフォームにコンボボックスとテキストボックスが各1つずつ、 シート2のA列には1行目から順に「あ」「い」「う」と文字が入っていて、B列には「1」「2」「3」と値が入っています。 コンボボックスのリストにはシート2のA列の文字が選択できる状態にあります。 この状態で、例えばコンボボックスで「い」を選んだら、テキストボックスに自動的に「2」と入る、というように、コンボボックスのリストの中から任意の文字を選択したときに、テキストボックスにB列の値が入るようにするにはどのようにすればいいのでしょうか?よろしくお願いします。

  • ユーザーフォーム上にあるコンボボックスの重複選択をできなくするには?

    ユーザーフォーム上に10個のコンボボックスがあり それぞれ名前をcb1からcb10とします。 これらのコンボボックスには同じリストを取得して 表示していますが、選択するときには重複させないように したいと思っています。 例を挙げると、 リストの値が”東京”、”大阪”、”名古屋”として、 cb1で”東京”を選択している場合は、残りのcb2~cb10では ”東京”を選択できないように、もしくは選択したときに ”すでに選択済みです”みたいなメッセージを表示させて キャンセル状態に戻す、みたいにしたいのですが スマートな書き方がわかりません。 ※力業でそれぞれのコンボボックスのチェンジイベントで 他のコンボボックスの値を見に行って、重複があれば メッセージを表示させるという方法ならわかるのですが 実際のコンボボックスの数が50近くあるためできれば 避けたいと思っています。 達人の皆様、どうぞ宜しくお願いします。