
OfficeExcel2003を使用しています。
ユーザーフォームのテキストボックスやコンボボックスに文字や数値を入力し、OKボタンを押せばエクセルのセルに記入できるようにしようと思ってます。
フォームはなんとか(形だけですが..)作成できたのですが、そのフォームを呼び出す方法として、入力したい行のA列のセルをクリックすればユーザーフォームが表示されるようにしたいのです。
ネット上でいろいろ検索してみましたがなかなか見つけることができませんでした。
初歩的な質問かもわかりませんが、教えて頂けないでしょうか。
宜しくお願い致します。
No.3
- 回答日時:
厳密には「セルをクリックすればユーザーフォームが表示」させるイベントはありません。
その代わりに#01さんが書かれているダブルクリックイベント(BeforeDoubleClick)を使うか、#02さんのSelection_Changeイベントを使うことになります。ただしSelection_Changeイベントは矢印キーでアクティブセルを移動させてもイベントが発生しますから「マウスのクリック」に限定できません。でもryunohitomiさんだけがそのブックを操作するならどちらの方法でもあまり気にする必要はないですが、もし他人にも操作をさせるなら「何もないセルをクリックすることが操作のきっかけになる」というGUI設計は、そのルールを知らないと操作できませんから好ましくないですね。
やはりシート上にコマンドボタンを配置して、明らかに「これをクリックすればよい」ことがわかる方が親切な設計ではないでしょうか。
もしシートが「スクロールするのでボタンが見えなくなる」というならウィンドゥ枠の固定を行って、スクロールしないエリアにボタンを配置すればよいと思います。
ありがとうございます。
いろいろな方法があるのですね。
今回は私個人がほとんど使用するものですので、見た目がシンプルな方法で考えてました。
アドバイスありがとうございました。
No.2
- 回答日時:
ユーザーフォームを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列の行範囲を限定もコードを変えると可能。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
特定のセルを選択した場合にユーザーフォームを表示したい
Excel(エクセル)
-
入力済み、選択したセルに連動した行のデータをユーザーフォームで呼び出すには
Excel(エクセル)
-
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
-
4
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
5
エクセルで各セルをダブルクリックで各入力フォームが出る
Access(アクセス)
-
6
VBA フォームのテキストボックスにセルの値を表示させたいが改行していたら改行もあわせて表示させたい
Excel(エクセル)
-
7
ダブルクリックしたセルの近くにユーザーフォームを表示したい
Excel(エクセル)
-
8
エクセルの画面にユーザーフォームでテンキーを表示させたい
Excel(エクセル)
-
9
任意で選択したセルをテキストボックスに表示
Excel(エクセル)
-
10
VBA(エクセル)で自動的にボタンをクリックさせるには
その他(プログラミング・Web制作)
-
11
UserForm1.Showでエラーになります。
工学
-
12
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
13
Excelにて、ユーザーフォームで作成したテンキーの、表示している数字を セルに転記したい
Yahoo!ショッピング
-
14
VBA(エクセル)のユーザーフォームの固定
Visual Basic(VBA)
-
15
ExcelのVBAでフォームが表示されない
Excel(エクセル)
-
16
VBA:結合されたセルに対する「Target」について
Access(アクセス)
-
17
エクセルVBAでマルチページの切り替え方法の件で
Excel(エクセル)
-
18
EXCEL VBA セルに既に入力されている文字に文字を追加する
Excel(エクセル)
-
19
エクセル イベントマクロ Changeイベントを複数作りたい
Access(アクセス)
-
20
XL:BeforeDoubleClickが動かない
その他(プログラミング・Web制作)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ExcelVBAでセルをクリックして...
-
ACCESS フォームでの、データ...
-
EXCEL VBAのユーザーフォームに...
-
ユーザーフォームのコマンドボ...
-
accessで画像を動かすに...
-
エクセルVBAからアクセスフ...
-
エクセルVBA オプションボタ...
-
JW-CADのAutoモードの解除はで...
-
エクセルVBAのユーザーフォーム...
-
標準モジュールだとエラーにな...
-
ユーザーフォームのスクロール...
-
ACCESS カンマをスペースに置...
-
データベースのINT型項目にNULL...
-
Access レポート印刷するときに...
-
アクセスで数値型のフィールド...
-
「フォームを作成できませんで...
-
レコードを保存するコード ア...
-
フォームで入力しても反映されない
-
passwordが入れられません・・・・
-
iphoneのフルスクリーンの解除方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXCEL VBAのユーザーフォームに...
-
エクセルVBA オプションボタ...
-
ExcelVBAでセルをクリックして...
-
アクセスで「モジュールがあり...
-
ACCESS フォームでの、データ...
-
標準モジュールだとエラーにな...
-
エクセルVBAからアクセスフ...
-
JW-CADのAutoモードの解除はで...
-
Accessでエラーメッセージの表...
-
Notesでアンケートをとりたい
-
ExcelVBAで指定外のUserFormを...
-
ユーザーフォームのスクロール...
-
コマンドプロンプト使用時に「'...
-
ACCESS フォームで、ボタンの...
-
access の 閉じるボタンを無効...
-
ACCESS カンマをスペースに置...
-
エクセルVBA ユーザーフォーム...
-
ACCESS VBAで別のプ...
-
Accessでaccdeへ変換で機能しない
-
USBメモリを丸ごと仮想イメージ...
おすすめ情報