質問: excelvbaでセルをクリックしてユーザーフォームを表示するには officeexcel2003を使用しています。 ユーザーフォームのテキストボックスやコンボボックスに文字や数値を入力し、okボタンを押せばエクセルのセルに記入できるようにしようと思ってます。 フォームはなんとか(形だけですが..)作成できたのですが、そのフォームを呼び出す方法として、入力したい行のa列のセルをクリックすればユーザーフォームが表示されるようにしたいのです。 ネット上でいろいろ検索してみましたがなかなか見つけることができませんでした。 初歩的な質問かもわかりませんが、教えて頂けないでしょうか。 宜しくお願い致します。
回答: ユーザーフォームを1つ挿入します。vbe画面で。 (1)ユーザーフォーム (a)その上にテキストボックスを1つ貼り付けます(実際は複数個でも可。例題を簡単にするため) (b)またその上にテキストボックスを1つ貼り付けます(実際は複数個でも可) (c)コマンドボタンを1つ貼り付けます。入力完了通知用。 コンボのプロパティはrowsourceにf1:f3といれ、f1:f3のセルには 東京 名古屋 大阪 と入れておく。エクセル向きに書いたもの。プログラムからも設定できる。 ユーザーフォームはshowmodalをfalseにしておく。 (2)イベント・プロシ (a)コマンドボタンのクリックイベントに private sub commandbutton1_click() activecell = userform1.textbox1.text activecell.offset(0, 1) = userform1.combobox1.text '--- userform1.textbox1.text = "" userform1.combobox1.text = "" userform1.hide end sub を作ります (b)別にシート(sheet1)のelectionchangeイベントに private sub worksheet_selectionchange(byval target as range) if target.column = 1 then userform1.show end if end sub ==== 操作について ー a列を選択 フォームが出る 氏名を入力、支店名を選択 コマンドボタンをクリック 値がクリックしていたセルのa列とb列にセットされる フォームが消える 以上繰り返し。 a列の行範囲を限定もコードを変えると可能。