• 締切済み

VBA オプションボタンを自動作成するには?

VBAで会社の勤務表を作成しました。 その勤務表には、「通常勤務」「有休」など日ごとに勤務状況フラグを立てるセルがあります。 この勤務表のシートにアクションボタンを追加して、ボタンを押下した際に、前述した勤務状況フラグを参照して 「休暇(年休・半休・等)」に該当するフラグがある場合には、「休暇届」を別のシートにして表示させるようにしました。 (ここまでは既にできあがっています。) ここで質問です。 この「休暇届」作成のマクロの中で、その休暇がいつ申請されたものなのか(事前・当日・無断)を示すオプションボタン (ラジオボタン)を休暇毎に作成したいと思います。 (「休暇届」にボタン表示箇所を指定して作成。) 希望は、 (1)実際の選択は、担当者がシートから直接入力させるようにしたい。 (2)1月に何回休暇を取得するかはわからないので、マクロ内でループをさせて、休暇情報が全てシートに  書き出されるまで繰り返しボタン作成を行いたい。 の2点です。 わかりにくい質問かと思いますが、ご存知の方宜しくお願い致します。

みんなの回答

  • piyo2000
  • ベストアンサー率49% (144/293)
回答No.1

「オプションボタンを動的に作成する方法が分からない」ということでいいでしょうか? マクロの記録>オプションボタンをシートに作成>記録停止 とすればコードが吐き出されているはずですが。 ↓こんな感じですね。 ActiveSheet.OLEObjects.Add(ClassType:="Forms.OptionButton.1", Link:=False, _ DisplayAsIcon:=False, Left:=119.25, Top:=58.5, Width:=127.5, Height:= _ 67.5).Select ActiveSheetは休暇届のシートを指定してやれば(例:Sheets("休暇届"))いいわけですし、あとは位置とサイズ、そしてCaptionを指定してやればいいだけです。 こんな感じで。 Dim objOLE As OLEObject Set objOLE = ActiveSheet.OLEObjects.Add(ClassType:="Forms.OptionButton.1", Link:=False, _ DisplayAsIcon:=False, Left:=119.25, Top:=58.5, Width:=127.5, Height:= _ 67.5) objOLE.Object.Caption = "無断" あとは位置をずらしながら事前・当日を作ればいいですよね。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • VBA のオプションボタンって・・・

    教えて頂きたいのですが、 普通、オプションボタンってユーザーフォーム上に作成すると思いますが、訳があってsheet上に作りたいのです。 コントロールツールボックスで作成した直後はちゃんとマクロが走るのですが、一回セーブしてbookを閉じてからオプションボタンを押そうとするとマクロが走ってくれません。 自分で思うに、オプションボタンが画像として扱われている雰囲気がするのですが、ご存知の方がいらっしゃったら教えてください。よろしくお願い致します。

  • エクセル2010 マクロを実行するボタンの作成

    エクセル2010で、 マクロを実行するボタンの作成方法か、初心者向けのサイトを教えてください。 やりたいことは、 シート1に入力した値が、シート2・3・4・・・の表に反映されて表示される。 (各シートの正しい位置に数値を反映させることは終了しました。) シート1に「シート2印刷」 「シート2印刷」・・・などのよなボタンを作り、ボタンを押すだけで、 シートの印刷を実行させたい。 です、宜しくお願い致します。

  • EXCEL VBAで複数シート内のセルをまとめて表を作成

    EXCELマクロ(VBA)を教えてください。 なやんでいることは、 目的:シート1からシート5までの表の値をシート6に一覧表を作成させる。 ・シート1からシート5まで シート内の表からセル値をコピーしてマクロで(ボタンか何かで)シート6にシート1からシート5のセル値を貼り付けていくような動作をさせられるようなプログラムをつくりたいです。    表(一覧)を作成させたいので わかる方プログラミングを教えてください。よろしくお願いします。

  • ボタンを使ったマクロの作成

    ボタンを使ったマクロの作成 エクセルでボタンを押すと あるセルの数字に1が加算され そのシートが印刷されるマクロを 恐れ入りますがどなたか教えて(作成して)下さい。 マクロに関しましては まったくわかっておりませんので トンチンカンなことを言い出すかもしれませんが どうぞよろしくお願い致します。

  • オプションボタンについて教えて下さい。

    今、Excelでアンケート入力表を作成しておりまして、各項目ごとオプションボタンで選択していく形式をしたいのですが、シート内全てのオプションボタンが反応してしまいます。どうしたら各項目ごとの反応に出来るのでしょうか?

  • VBAでこんなものを作成したいのですが…

    こんばんは。回答者の方には いつもお世話になっております.. Excelにコマンドボタンを付け、 コマンドボタンを押すと チェックボタンの氏名が表示され ひとつチェックをし、OKを押すと Excelにある表の方に、 氏名と、ついでに性別を表示させる そんなものを作成したいのですが… ちなみに氏名と性別はテキストボックスへ 表示させたいのですが…; 私はCace文で作成できると思ったのですが 全く進まずです…; これはマクロで可能なものなのか、 テキストボックスへの表示は可能なのか、 よろしければ参考になるサイトや こんな方法があるなの、 どんなことでもいいので 教えていただきたいです…orz 宜しくお願い致します;

  • EXCEL VBAで売上日報作成

    下記のような場合どのようなマクロを組めばいいか教えてください。 表(1) 日付 店舗名 売上 仕入値 客数   -------------------------------- 3/1   A   100   10   20 このような表を 表(2)(別のシート) 日付 売上  3/1  10 3/2  12 3/3 100  のように置き換えるのは出来るのですが、 例えば表(1)に3/11のデータをコピペし、シート上に マクロ実行ボタンを作り、そのボタンを押すと 表(2)に必要な部分だけを抽出かつ、日付順に並ばせる 方法を教えてください。 表(1)にデータをコピペし、ボタンを押すだけで表(2)に その日の売上が表示され、月末には一ヶ月の売上の推移を見れるような形をつくりたいのです。LOOK UP関数 などでは、表(1)に3/1の分をコピペするとその日はちゃんと表示されますが、翌日表(1)に3/2分をコピペすると3/1の上に上書きされますよね。なので、3/1の下のセルに3/2分を表示するようなマクロを教えてください。

  • excel-vbaで作成したマクロを別シートから実行させたい

    excel-vbaでマクロを作成したのですが、以下の2点がわからなくて困っています。 (1)作成したマクロを別のシート(コマンドボタンだけが配置されているシート)から実行させたい (2)コマンドボタンを作成して、ファイルを閉じてしまうと作成したコマンドボタンが消えてしまいます。コマンドボタンを作成したファイルは、常に作成したコマンドボタンを表示させたい よろしくお願いいたします。

  • 【Excel初心者】リスト自動作成ツール

    Excelでリストの自動作成ツールを作成することになり、基本Webを参考にして作業を進めていきました。 今現時点で出来ているのは以下の点です。  ・Sheet1で入力したセルの値を、Sheet2の任意のセルへ抽出している(数式使用) 今実装したい機能は以下の点です。  ・Sheet2へ抽出したSheet1の値を保持したまま、Sheet1の入力内容のクリアー(Sheet1の入力内容クリアー後も、Sheet2のセル内値は保持されたまま)  ・Sheet2への表自動挿入(今は事前に作成した表(適当にセルを複数選択し、罫線機能をつかって囲んだもの。)の中に数式を埋め込んでいます) ボタンを作成し、ボタン押下をトリガーとして上記機能を操作したいのですが、これはマクロで実現可能なのでしょうか? それとも数式でまだなんとかなるレベルなのでしょうか? もし可能であれば、例をご教示いただけたら幸いです。 宜しくお願い致します。

  • VBA オプションボタンの分類について

    http://okweb.jp/kotaeru.php3?q=1424026 でオプションボタンの表示に関して質問をした者です。 ボタンを自動作成する事はできたのですが例えば1日と15日に 休暇を取得した場合、ボタンが6つ表示されるのですが(1日分が3コ、15日分が3コ)、 この6つのボタンのうち1つしか選択ができません。 (2つ目を選択すると、前に入力していたものはチェックが外れる。) 日にちごとに、1つずつボタンを選択するようにするにはどうしたら良いのでしょうか? ちなみに、当該処理の今記述しているソースは以下のとおりです。 休暇情報の書き出しが終了するまでループで回しています。 ご教授ください。宜しくお願い致します。 '当日ボタン作成 Set objOLEToday = ActiveSheet.OLEObjects.Add(ClassType:="Forms.OptionButton.1", Link:=False, _ DisplayAsIcon:=False, Left:=565, Top:=100 + objCnt, Width:=45.5, Height:=15.5) objOLEToday.Object.Caption = "当日" '事前ボタン作成 Set objOLEBefore = ActiveSheet.OLEObjects.Add(ClassType:="Forms.OptionButton.1", Link:=False, _ DisplayAsIcon:=False, Left:=750, Top:=100 + objCnt, Width:=45.5, Height:=15.5) objOLEBefore.Object.Caption = "事前" '無断ボタン作成 Set objOLENotice = ActiveSheet.OLEObjects.Add(ClassType:="Forms.OptionButton.1", Link:=False, _ DisplayAsIcon:=False, Left:=920, Top:=100 + objCnt, Width:=45.5, Height:=15.5) objOLENotice.Object.Caption = "無断" '表示位置設定 objCnt = 405.4 + objCnt

このQ&Aのポイント
  • 【MFCJ5980CDW】のローラクリーニングキットはどこで買えるのか?
  • 紙が詰まるトラブルに対応するためのローラクリーニングキット【MFCJ5980CDW】をお探しですか?ここでは、購入方法や取り扱い店舗についてご紹介します。
  • Windows10で無線LAN接続を使用している場合、【MFCJ5980CDW】のローラクリーニングキットは便利なアイテムです。ひかり回線を使用している方も安心してご利用いただけます。
回答を見る