• ベストアンサー

エクセルシート上で作成したツールの呼び出し

VBAで簡単なツールをユーザフォームを使用して 作成したのですが、このプログラムをエクセルを 起動させてあるコマンドボタンを押すと そのツールが立ち上がるようにしたいのですが、 その方法を教えて頂けないでしょうか? 例えばCTL+Wで立ち上がらしたいのですが。

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

  • ベストアンサー
回答No.2

jones0901、こんにちは。 なかなか難しくて面倒な問題ですね(笑) VBAで簡単なツールを作れる方ですので要点だけを! ThisWorkbookのコード表示の中で Private Sub Workbook_Open() UserForm1.Show End Sub UserForm1にラベルコントロールをひとつ定義します。 UserForm1のコード表示の中で Private Sub Label1_Click() ActiveWorkbook.Save Application.Quit End Sub Private Sub UserForm_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) If KeyCode = 87 And Shift = 2 Then Label1.Caption = "こんにちは!" End If End Sub 以上を貼り付けます。 参考までに:KeyCode = 87 は Wキー、Shift = 2 はCtrlキーのことです。 ラベルコントロールをクリックすると終了します。

その他の回答 (1)

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

(1)VBAで下記の例を作りました。Module1に Sub test01() MsgBox "マクロの実行" End Sub (2)例えばワークシートSheet1にコマンドボタンを1つ貼りつける。デザインモードにして、コマンドボタン上でダブルクリックする。 (3)VBE画面に変わって Private Sub CommandButton1_Click() End Sub が出る。この2行の間に Private Sub CommandButton1_Click() test01 End Sub を挟む。Call test01でも良い。引数があればtest01(・・ ) (4)ワークシート画面に戻って、ツール-マクロ-マクロをクリック。マクロ名にtest01を選び、「オプション」 をクリック。 (5)「ショートカットキー」のところで   Ctrl+Shift+MのMのところを英字で指定。   (MはWでも何でも良い。)OKをクリック。 これで(A)コマンドボタンをマウスでクリックしても (B)キーボードからCtrl+Shift+Mをキーインしても どちらでもプログラムが実行されます。 VBAで記述するなら、 Sub Macro1() Application.MacroOptions Macro:="test01", _   Description:="", ShortcutKey:= _ "M" End Sub です。

関連するQ&A

  • エクセルのユーザーフォームについて

    エクセルのユーザーフォームについて教えてください。 ユーザーフォームにてメニュー画面を作成しました。 ユーザーはメニューからの操作だけでエクセルシートを作成できるようなマクロをつくりました。 ユーザーフォームのコマンドボタンでEXCELを終了させることはできますか? VBAの記述方法も教えてください。

  • フォームとコントロールツールボックスの違い

    コマンドボタンでVBAのプログラムを実行させたいんですがフォームとコントロールツールボックスにあるコマンドボタンの違いがよくわかりません???? どうやって使い分ければいいんでしょーか???

  • エクセルのユーザーフォームのマクロ内でコマンドボタンを作成する

    エクセルのユーザーフォームで、読み込んだときにコマンドボタンを作成する方法を教えてほしいです。 通常は、先にユーザーフォーム内でボタンを作成して、キャプション等を設定すると思うのですが、ボタンの数が決まっていないので、フォームを読み込むたびにボタンの数を変えたいと思っています。 似たようなことでは、先にボタンを作っておいて可視、不可視にしようかとも思ったのですが、あまりそれはやりたくないです。 よろしくお願いします。 環境は、XPでエクセルは2003です。

  • エクセルでのオートメーションエラー

    たびたびお世話になっております。 excel2000のVBAでユーザーフォームを作成し、ユーザーフォーム上のコマンドボタンで処理を実行しています。処理はワークシート上の計算を実行したり、メールに添付し送信したり・・・です。この実行後にもう一度ユーザーフォームを開こうとすると、(ユーザーフォーム.show)まず、パス名が無効です、のエラー。ワークブックを保存し閉じようとすると(これもユーザーフォームのコマンドボタン)、オートメーションエラーです、となります。ユーザーフォームを閉じ、excelを終了しようとすると、EXCELは終了できません。となってしまいます。 なぜ?どーして?チンプンです。 ちなみにその後、もう一度同じワークブックを開こうとすると、使用中になり、 読取専用でしか開けません。 どうか、教えてください。

  • エクセル VBA 

    エクセル VBA  Sheet上にコマンドボタンをクリックさせたら 電卓表示させるにはどのように記述をしたら良いですか? (1)勿論、VBAで電卓作成したいのですが…何か良いサイトはありますか?それか  作り方を教えて欲しいです。 (2)ツール⇒すべてのプログラム⇒アクセサリ⇒電卓  で表示できますよね!それをコマンドボタンクリックで  表示させるには、どのように記述したら良いですか?   すいません教えてください!

  • ウインドウズのマクロ

    エクセルのマクロはVBAで作成出来ますが ウィンドウズ(パソコン)のマクロは何で作成できるのでしょうか? VBで作成できますか? 例えばユーザーフォームを作ってコマンドボタンを押すと、エクセルが起動するなどの操作です。 よろしくお願い致します。

  • エクセルVBA ユーザーフォームの終了について

    エクセルVBAでユーザーフォームを作成しています。 コマンドボタンにVBAマクロを割り当てしているのですが 思うように動いてくれないので質問します。 コマンドボタンをクリックしたら望む動作 1、ワークシートを選択 2、その後、ユーザーフォームを消す。 と言う動作にしたいのですが、2の ユーザーフォームを消す方法、書き方が分かりません どなたか教えていただけないでしょうか 1の動作は以下のように書いています。その後の書き方を お願いします。 Private Sub CommandButton8_Click() ブック名 = "VBA演習" シート名 = "sheet1" Workbooks(ブック名 & ".xls").Worksheets(シート名).Activate End Sub (ユーザーフォームの名前は"テストフォーム"としてます)

  • 別ブックのマクロよりコマンドボタンを押下する方法

    当方、VBAに関しては初心者です。 EXCEL2000のVBAで作成したプログラムAの操作を、マクロを使って別のブックに記録させたのですが、マクロを実行しても途中で操作が止まってしまいます。 マクロを変更することで解決できる方法がわかる方がいらっしゃったら教えてください。 ※RocketMouseのようなWindows操作制御ソフトが会社では利用禁止とされていて使えません。 ちなみにVBAで作成したプログラムAは ・ユーザーフォーム上に2つのコマンドボタン(「次へ」「終了」)と4つのラジオボタンがあります。 ・「次へ」を押下すると別のユーザーフォームへ遷移します。 ・遷移先のユーザーフォームにはコマンドボタン(「戻る」)があります。 ※ただし、会社の資産であるためプログラムAを変更することはできません。 マクロで記録した操作は以下の(1)~(4)です (1)ラジオボタンはデフォルト表示のままで (2)コマンドボタン「次へ」を押下して別のユーザーフォームへ遷移 (3)遷移先のユーザーフォームでコマンドボタン「戻る」を押下 (4)(1)のユーザーフォームに戻った後コマンドボタン「終了」を押下 別のブックに(1)~(4)の操作を記録させ実行しましたが、(2)でコマンドボタン「次へ」が押下されず、別のユーザーフォームへ遷移できません。 マクロの変更で別のユーザーフォームへ遷移させる方法を教えてください。 ※コマンドボタン「次へ」の関数はPublic Subで定義されてます。 よろしくお願いします。

  • Excelで入力フォームの作成方法

    Excelについて質問です。 住所管理ファイルを作っています。 入力できやすいように、コマンドボタンを押すと入力フォームが表示されて入力できるように設定したいと思っています。 Accessでは簡単に作成できますがExcelではVBAなどのコードを記述しなければできないのでしょうか? 何か良い方法はありますでしょうか?

  • Excel VBAでユーザーフォームを編集不可にする方法

    Excel VBAでユーザーフォームを編集不可にする方法がわからなくて困っています。起動時に編集不可の状態にしておき、コマンドボタンを押したときに編集可能にするような方法を考えています。 Accessの場合は Me.AllowEdits = False などできるのですが、Excelではどうすればいいのか、どうか教えてください。

専門家に質問してみよう