• ベストアンサー

エクセルにボタン表示をつける方法を教えてください。

仕事で使用する表作成について困っています。 とくにボタン表示のさせかたを知りたいと思っています。 <状況> 部署内に100名の社員がいます。その100名をAとBの班に ふらなければいけません。(どちらの班になりたいかは、各人の自由希望) <希望> 私が全員の氏名や班をエクセルに入力するのは大変なので 各人に入力してもらいたい。その際、班をボタンでクリックするだけにしたい。シートはごくシンプルに、氏名、社員番号と班だけを一枚のシートに作成したい。 <ボタン表示の希望> 名前の欄の横にボタンを設置(「A・B」と表示させたボタン)。Aをクリックするとその横にA班と自動的に表示させ、なおかつその行を青色にかえたい。 Bをクリックすると、B班と表示、行はうすい青色にかえたい。 <補足> ツールの「コントロールボックス」でボタンは作れるような気がしているのですが、複雑すぎてできませんでした。 どなたか詳しい方がいらっしゃいましたら、是非お願いいたします。よろしくお願いいたします。

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

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

(1)シートのA1:C1セルに 氏名 社員番号 班 を入力する。 (2)シートに1つコマンドボタンを貼りつけ、 クリックイベントに Private Sub CommandButton1_Click() ActiveSheet.ShowDataForm End Sub を作る。 (3)ボタンをクリックすると、データ-フォームの操作するに相当する「フォーム」が出ますので、これに入力させるのはいかがですか 。

その他の回答 (4)

  • comv
  • ベストアンサー率52% (322/612)
回答No.4

#1 comv です >のような感じで、ひとりずつに行追加ボタンが >ついていて、どこにでも割り込みで追加できる >ものをイメージしております。 さすがにこれは一般機能では無理でVBAになります 簡単な方法としては記録マクロで ・適当なセルを選択 ・メニューのツール マクロ 新しいマクロの記録 ・メニューの挿入 行 ・マクロ記録 停止(■をクリック) ・ツールバーの フォーム を表示して ボタンを配置 ・マクロの登録ダイアログが出るので 記録された  マクロを選択 OK 前回の入力規則が設定されている間の行、若しくは 直下での行挿入なら、入力規則の設定も引き継がれます。 (ただし入力規則の初期表示は空白です。これも可能にするにはVBEでのマクロ編集が必要です) もしくは、もうしばらくこのままにしてVBA使いの 方々のレスをお待ちになれば、綺麗なコードや方法を 提示して頂けるかもしれませんね(^^

  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.3

いくつか案が出てますが、別の代替案です。 あんまり良い案ではないけど。。 シート名のタブを右クリックし、コードの表示を選択して、出てきた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 と打ってね」でも良いと思いますが、、、

sato-shi
質問者

お礼

シートごと設定する方法があるなんてしりませんでした ので、とても勉強になりました。 ありがとうございます。 この技はちゃんと保存して、他の表作成のときに 是非使わせていただきます。 丁寧に書き込んでいただき、本当にありがとうございました。とても感謝しております。

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

表示-ツールボックス-オプションボタンをクリック- ボックス外では、マウスポインタが+になるから、例えば D3で斜め・右肩下がり方向にドラッグするとボタンが 出ます。小四角6つの四角の中で、右クリクしてプロパティウインドウを出し、Captionを例えば「男性」とし、LinkedCellを例えば「A3」と入れます。 デザインモード(三角定規のアイコンの凹みをクリック)を解除します。 同じことをE4にもうひとつボタンを作り、Captionを「女性」とします。 A3セルに関数式=IF(D3,"男性","女性")と入れます。 これで男性ボタンをクリックするとA3に男性、女性ボタンをクリックすると女性と出ます。 3値ある時は3個ボタンを用意します。 こんなことで良いでしょうか。

sato-shi
質問者

お礼

書き込みありがとうございました。 これも、他の表でつかえそうです。 最近、こういう表関連の作業が多くて憂鬱になって いたので、とてもたすかりました。 ご教示いただき、ありがとうございました。

  • comv
  • ベストアンサー率52% (322/612)
回答No.1

こんばんは >ツールの「コントロールボックス」でボタンは作れる >ような気がしているのですが オプションボタンのことだと思いますが 作れますが、各社員行ごとに2つ配置して全ての ボタンのプロパティの設定作業もしくはVBAでの 記載が伴います。 一般機能での代案としては    A    B   C 1 氏名 社員番号 班 2 3 : 班を表示させたいセルの最初の行(C2)を選択して メニューのデータ 入力規則 設定タブ  入力値の種類:リスト▼  元の値欄に 選択,A班,B班 と記載 OK  (とりあえず 選択 を表示しておく) 上記と同じ行の「氏名、社員番号と班」の範囲(A2:C2)を選択して  書式 条件付き書式   数式が▼ =$C2="A班" ($の付いている位置に注意して下さい)   書式ボタン パターンタブ 青色 を選択 OK  追加ボタン   数式が▼ =$C2="B班"   書式ボタン パターンタブ 薄青色 を選択 OK A2:C2を適当な数だけ 下行へ複写

sato-shi
質問者

お礼

早速の書き込みありがとうございます。 今試したところうまくいきました。 希望していたとおりのものでした。 ほんとうにありがとうございます。 しかも、わかりやすい解説で感謝しています。 仕事でアップアップしていたので、本当に、本当に 助かりました。 ありがとうございました。

sato-shi
質問者

補足

恐れ入ります、あと一点もし可能でしたら教えていただきたいのですがよろしいでしょうか。 例: 50名分のリストがこの方式で完成したとします。 その後、No2の人のすぐ下に、行を挿入して 新しい人を追加するための、行挿入ボタンも 加えることができるでしょうか? エクセルに詳しくない人ばかりなので、エクセルの行挿入もボタンでできればと思っています。    A  B   C   D 1 氏名 社員番号 班  行追加 2 3 : のような感じで、ひとりずつに行追加ボタンが ついていて、どこにでも割り込みで追加できる ものをイメージしております。 わがままをいい申し訳ございませんが、もし 可能でしたらご教示いただければと思います。 よろしくお願い申し上げます。

関連するQ&A

  • エクセルのAcyiveXコマンドボタンの使い方について質問です。

    エクセルのAcyiveXコマンドボタンの使い方について質問です。 例としてですが、Sheet2には「赤」、Sheet3には「青」、Sheet4には「黄」とSheet名をしてるとします。これはデータとして入力しています。 Sheet1はデータの情報(Sheet1のセルA1に「赤」と表示されていたら赤の情報)が表示されるようになっています。情報の表示は、マクロでVLOOKUPを使用してデータより表示させるようにしています。そこで、コマンドボタンを使用して、情報を編集してデータを更新したいのですが記述の仕方がわかりません。 Sheet1で「青」、「黄」も同じく編集したら、Sheet3「青」、Sheet4「黄」をそれぞれ更新するようにしたいのですが、どなたか教えてください。「青」も「赤」も編集箇所、データの更新箇所は同じです。 Sheet2,3,4(赤、青、黄)のデータには、A1:A50には氏名が記入されており、B1:B50には職場、C1:C50は所属、D1:D50は住所が記入されているとします。 Sheet1のセルB2に氏名が表示されるようになっており、例えば、A1に赤と記入し、セルB2にaaaさんと名前が表示されていて、aaaさんの職場や住所が変更した場合にSheet1で編集したら、Sheet2(赤)の aaaさんの職場や住所を自動的に更新するようにしたいです。 Sheet1には、A1にシート名(赤、青、黄)、B2に氏名、B5に職場、D2に所属、E4に住所が入るように情報を作成してるとします。 マクロは、ほぼ初心者で、なかなか理解が難しいところではありますが、どうぞよろしくお願いします。

  • Excelシート1内容をシート2に記号入力

    Excelシート1の氏名、日付入力後、コマンドボタン入力をクリックしたらシート2に氏名と日付がマッチしたところにA班は○印をB班は△印マーキングしたいのですがコードがどなたか解る方よろしくお願いします。

  • エクセルで検索・表示の方法を教えてください。

    Sheet1のA列にそれぞれの名前を入力し   A 1 aさん 2 bさん 3 cさん Sheet2に各人のリスト   A   B   C 1      身長 体重 2 aさん  160  65 3 bさん  170  70 4 cさん  155  60 と記入していきリストを作成しておき それをSheet1のD列 E列に aさんの名前をクリックすると aさんの     身長  160           体重  65 などリストを表示させたいのですが、 Sheet1のA列の名前表示は動かないで bさんをクリックするとE列の結果だけ変わるように したいのですが。関数がわかりません。 教えてください。

  • エクセル ハイパーリンク先でのボタンの表示/非表示

    こんばんは。 エクセルでのボタンの表示/非表示についての質問です。 シートA、B、C、があり、AのシートにもBのシートにもCのシートへジャンプするハイパーリンクが設定してあります。 シートCにAボタン、Bボタンがあり、ジャンプしてきたシートによってボタンを表示/非表示にしたいと考えています。 【Aシートからジャンプして来た場合】 Cシート:Aボタンは表示、Bボタンは非表示 【Bシートからジャンプして来た場合】 Cシート:Aボタンは非表示、Bボタンは表示 これができる方法を模索中です。 どうぞよろしくお願い致します。

  • エクセルで 複数のデータを検索して複数表示させたいのですが・・・。

    エクセルで在庫の場所がチェックできる下記のような物を作りたいと考えています。 在庫リスト シート1       A    B   C   1行目  商品名   色   場所 2行目  あいう   赤   A1 3行目  かきく   黄   A2 4行目  さしす   青   A3 5行目  あいう   黄   A4 6行目  かきく   青   A5 ・ ・ ・ ・ 在庫リスト シート2       A    B   C   1行目  商品名   色   場所 2行目  あいう   青   B1 3行目  かきく   緑   B2 4行目  さしす   桃   B3 5行目  あいう   茶   B4 6行目  かきく   桃   B5 ・ ・ ・ ・ 上のような表を作成し、別のシート(シート3)で 検索名 あいう と打ち込むと   赤  A1  黄  A4  青  B1  茶  B4 という具合に同じ商品を検索し、色と場所を全て表示させるようなものをエクセルで作成できたらと思っています。可能でしょうか?また、可能であればどのような関数を使って作成したらよいのかを教えていただきたいです。vlookupが使えるかと思ったのですが、それだと一番上のデータ(この例でいけば 赤 A1)のみの表示になってしまい、使えませんでした。 あと、欲を言えば、 商品名を全て打ち込みをしなくても、一部のみ(この例でいけば 「あいう」 ではなくて 「あい」のみ)を打ち込むだけでその字を含む商品名を検索し、表示してくれるような表記の仕方があるともっとありがたいです。在庫リストは在庫の場所ごとに複数のシートに分かれています。 よろしくお願いします。

  • エクセルのツールバー上のコマンドボタンについて

    エクセルのコマンドボタンでツールバー上に 『行の挿入』 のボタンを作成しているんですが、 今5シート位あるファイルを作成しているのですが。ある1つのシートだけ(他のシートは大丈夫)、その『行の挿入』のボタンが灰色がかって使えません。 【挿入】→【行】 や右クリックの行挿入は出来るので(最終行にデータはありません)すが、その横にある『行の削除』のコマンドボタンは使えるのですが、『行の挿入』と『列の挿入』のボタンだけ、灰色かかって使えません。 そのシートはマクロを組んでいます。 どなたか原因のわかる方いましたら、教えてください。 宜しくお願い致します。 PCデータです。 OS:Windows XP Professional Microsoft OfficeはMicrosoft Excel 2002です 宜しくお願い致します

  • エクセルで動的に取捨選択させる方法

    エクセルにて以下の事を試したいのですが可能なのでしょうか? (1) まず最初に、Sheet1 と Sheet2 に全く同じ表を用意します。 (2) Sheet1の表には、 赤   100   a 青   300   b1 赤   100   a 赤   100   a 白   500   c 青   310   b2 青   320   b3 赤   100   a と、手入力します。 (3) この時、Sheet1にデータを入力したと同時に、Sheet2の方では自動で、Sheet1の1列目が『青』となっている行だけを拾ってSheet2の表に表示させたいのです。 青   300   b1 青   310   b2 青   320   b3 と、言った具合いです。 私なりに、IF文を使って『セルA1が青であれば表示させ、それ以外であれば表示させない。』という感じで、 ・Sheet2のA1に、 =IF(Sheet1!A1="青",Sheet1!A1,"") ・同様に、Sheet2のB1に、 =IF(Sheet1!A1="青",Sheet1!B1,"") ・同様に、Sheet2のC1に、 =IF(Sheet1!A1="青",Sheet1!C1,"") とし、あとは表の下までオートフィルしてあげたのですが、これだと青以外が入力されていたセルの位置が虫喰い(空白のセル)のようになってしまい見た目がよくありません。 青   300   b1 青   310   b2 青   320   b3 と、なってしまいます。できればキレイに見えるように自動で上詰めにしたいのですが、方法がわからず仕方なく、虫喰いの行を一つずつ手作業で『表示させない』にしてやっています。 (※行を削除すると式がずれてしまいエラーになってしまうため) 何か良い改善方法、お知恵がありましたら、ご助力のほどを是非とも宜しくお願い致します。 それとも、エクセルで根本的にそこまでの機能は有してないのでしょうか?

  • エクセル クリックでセルの色を変えるには?

    9人をA、B、Cの3チームに分ける表をエクセルでつくりたいと考えています。    (1)1行目に1人目のデータ。A1列に氏名。  (2)1人目がAチームなら、B1をクリックすると赤に変わり、かつ「A」とそのセル表示。  (3)Bチームに変更したければ、C1をクリックすると青に変わり、かつ「B」とそのセルに表示。その   際、B1の色を消す。  (4)Cチームの場合は、D1をクリック、黄色に変わり、かつ「C」と表示。その際、B1もしくはC1の色を  消す。  (5)2人目以降は同様に、2行目以降に表示。それぞれの行が干渉しないようにする。  なお、以上が1試合目で、2試合目のチーム分けをそれぞれのメンバーの行の、E、F、Gの列を使って、同様に行えるようにできれば完璧なのですが…。  文章がつたなく申し訳ありません。ぜひ教えてください。

  • エクセルで別シートから一つのシートに低い数字を表示

    エクセルで同一形式の8枚の別シートから1枚のシートへ一番価格が低いものを表示させたいんです。さらに表示させたシートの色に表示させる様にしたいです。 例  シート1 シート色赤 A 100 B 200 C 300 シート2 シート色青 A 200 B 100 C 300 シート3 シート色黄 A 300 B 200 C 100 合計シート A 100 赤 B 100 青 C 100 黄 数字だけでも表示できると助かるのですが やはり色もつけるとなるとマクロを組まないといけないのでしょうか?

  • エクセル 該当日付のデータの抽出方法

    1か月のシフト予定表から該当日のみを別シートに抽出したいのですがなかなかうまくいきません。エクセル関数に詳しい方いい方法教えてください。 元のシートは横に日付が並んでおり、縦は氏名が並んでいます。 予定シフトがあらかじめ組んであるのですが(班により決まっている)個別に希望休みをだしてもらい 他の出れる日と調整するために作成します。               11/1                        11/2         11/3  ・・・・ 氏名   /予定シフト/希望休み/勤務可能日か(の繰り返し)    勤務可能      勤務可能 秋山    A       ◇                            ○         ○ 稲毛    A       □         大森    休              ○ 加藤    休              △    久米    休 小山    休               咲山    B       □                                       ○            (※マークは有休か無休か、勤務確実にできるか場合によりできるか等の種別です) <別シート> 11/1  ←日付を入力すると上記のマークが入っている氏名のデータのみをまとめて一覧表示 氏名 /予定シフト/ 種別/ 勤務可能日/ 秋山   A       ◇     11/2        11/3 稲毛   A       □ 咲山   B       □     11/3  大森   休       ○ 加藤   休       △      休み希望でいつなら振替で勤務できるのかを表示させたいのです。 日付を入力して氏名、予定シフト、休暇種別の表示まではできるのかもしれませんが勤務可能日 のデータを表示することはできるのか、複雑で困っています。(>_<) よろしくお願いします。            

専門家に質問してみよう