- ベストアンサー
エクセルにボタン表示をつける方法を教えてください。
仕事で使用する表作成について困っています。 とくにボタン表示のさせかたを知りたいと思っています。 <状況> 部署内に100名の社員がいます。その100名をAとBの班に ふらなければいけません。(どちらの班になりたいかは、各人の自由希望) <希望> 私が全員の氏名や班をエクセルに入力するのは大変なので 各人に入力してもらいたい。その際、班をボタンでクリックするだけにしたい。シートはごくシンプルに、氏名、社員番号と班だけを一枚のシートに作成したい。 <ボタン表示の希望> 名前の欄の横にボタンを設置(「A・B」と表示させたボタン)。Aをクリックするとその横にA班と自動的に表示させ、なおかつその行を青色にかえたい。 Bをクリックすると、B班と表示、行はうすい青色にかえたい。 <補足> ツールの「コントロールボックス」でボタンは作れるような気がしているのですが、複雑すぎてできませんでした。 どなたか詳しい方がいらっしゃいましたら、是非お願いいたします。よろしくお願いいたします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
(1)シートのA1:C1セルに 氏名 社員番号 班 を入力する。 (2)シートに1つコマンドボタンを貼りつけ、 クリックイベントに Private Sub CommandButton1_Click() ActiveSheet.ShowDataForm End Sub を作る。 (3)ボタンをクリックすると、データ-フォームの操作するに相当する「フォーム」が出ますので、これに入力させるのはいかがですか 。
その他の回答 (4)
- comv
- ベストアンサー率52% (322/612)
#1 comv です >のような感じで、ひとりずつに行追加ボタンが >ついていて、どこにでも割り込みで追加できる >ものをイメージしております。 さすがにこれは一般機能では無理でVBAになります 簡単な方法としては記録マクロで ・適当なセルを選択 ・メニューのツール マクロ 新しいマクロの記録 ・メニューの挿入 行 ・マクロ記録 停止(■をクリック) ・ツールバーの フォーム を表示して ボタンを配置 ・マクロの登録ダイアログが出るので 記録された マクロを選択 OK 前回の入力規則が設定されている間の行、若しくは 直下での行挿入なら、入力規則の設定も引き継がれます。 (ただし入力規則の初期表示は空白です。これも可能にするにはVBEでのマクロ編集が必要です) もしくは、もうしばらくこのままにしてVBA使いの 方々のレスをお待ちになれば、綺麗なコードや方法を 提示して頂けるかもしれませんね(^^
- papayuka
- ベストアンサー率45% (1388/3066)
いくつか案が出てますが、別の代替案です。 あんまり良い案ではないけど。。 シート名のタブを右クリックし、コードの表示を選択して、出てきたVBE画面を下記に書換えます。 C列の C2 以下をクリックするとメッセージが出ますので、それに答えると選択します。 Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range) Dim msgResult, r As Range Set r = Target.Cells(1, 1) If r.Column <> 3 Or r.Row < 2 Or r.Value <> "" Then Exit Sub msgResult = MsgBox _ ("A班を希望しますか?", vbQuestion + vbYesNoCancel, "希望は?") Select Case msgResult Case vbYes r.Value = "A班" r.Font.ColorIndex = 2 r.Interior.ColorIndex = 5 Case vbNo r.Value = "B班" r.Font.ColorIndex = 0 r.Interior.ColorIndex = 8 End Select Set r = Nothing End Sub ただ、「A班なら 0 、B班なら 1 と打ってね」でも良いと思いますが、、、
- imogasi
- ベストアンサー率27% (4737/17069)
表示-ツールボックス-オプションボタンをクリック- ボックス外では、マウスポインタが+になるから、例えば D3で斜め・右肩下がり方向にドラッグするとボタンが 出ます。小四角6つの四角の中で、右クリクしてプロパティウインドウを出し、Captionを例えば「男性」とし、LinkedCellを例えば「A3」と入れます。 デザインモード(三角定規のアイコンの凹みをクリック)を解除します。 同じことをE4にもうひとつボタンを作り、Captionを「女性」とします。 A3セルに関数式=IF(D3,"男性","女性")と入れます。 これで男性ボタンをクリックするとA3に男性、女性ボタンをクリックすると女性と出ます。 3値ある時は3個ボタンを用意します。 こんなことで良いでしょうか。
お礼
書き込みありがとうございました。 これも、他の表でつかえそうです。 最近、こういう表関連の作業が多くて憂鬱になって いたので、とてもたすかりました。 ご教示いただき、ありがとうございました。
- comv
- ベストアンサー率52% (322/612)
こんばんは >ツールの「コントロールボックス」でボタンは作れる >ような気がしているのですが オプションボタンのことだと思いますが 作れますが、各社員行ごとに2つ配置して全ての ボタンのプロパティの設定作業もしくはVBAでの 記載が伴います。 一般機能での代案としては A B C 1 氏名 社員番号 班 2 3 : 班を表示させたいセルの最初の行(C2)を選択して メニューのデータ 入力規則 設定タブ 入力値の種類:リスト▼ 元の値欄に 選択,A班,B班 と記載 OK (とりあえず 選択 を表示しておく) 上記と同じ行の「氏名、社員番号と班」の範囲(A2:C2)を選択して 書式 条件付き書式 数式が▼ =$C2="A班" ($の付いている位置に注意して下さい) 書式ボタン パターンタブ 青色 を選択 OK 追加ボタン 数式が▼ =$C2="B班" 書式ボタン パターンタブ 薄青色 を選択 OK A2:C2を適当な数だけ 下行へ複写
お礼
早速の書き込みありがとうございます。 今試したところうまくいきました。 希望していたとおりのものでした。 ほんとうにありがとうございます。 しかも、わかりやすい解説で感謝しています。 仕事でアップアップしていたので、本当に、本当に 助かりました。 ありがとうございました。
補足
恐れ入ります、あと一点もし可能でしたら教えていただきたいのですがよろしいでしょうか。 例: 50名分のリストがこの方式で完成したとします。 その後、No2の人のすぐ下に、行を挿入して 新しい人を追加するための、行挿入ボタンも 加えることができるでしょうか? エクセルに詳しくない人ばかりなので、エクセルの行挿入もボタンでできればと思っています。 A B C D 1 氏名 社員番号 班 行追加 2 3 : のような感じで、ひとりずつに行追加ボタンが ついていて、どこにでも割り込みで追加できる ものをイメージしております。 わがままをいい申し訳ございませんが、もし 可能でしたらご教示いただければと思います。 よろしくお願い申し上げます。
お礼
シートごと設定する方法があるなんてしりませんでした ので、とても勉強になりました。 ありがとうございます。 この技はちゃんと保存して、他の表作成のときに 是非使わせていただきます。 丁寧に書き込んでいただき、本当にありがとうございました。とても感謝しております。