• ベストアンサー

Excel2003でVBAを勉強しています。

Excel2003でVBAを勉強しています。 そこで、お聞きしたい事があります。 ボタン(でいいでしょうか?)を作成するには、3つの方法があるかと認識しています。 ?コントロールツールボックスのコマンドボタン機能を使用する方法 ?フォームのボタン機能を使用する方法 ?オートシェイプにマクロ機能を登録する方法 それぞれ、の違いというか特徴が良く判りません。 特に、?と?の違いは何なのでしょうか? ?のフォームを検索してもユーザーフォームしかヒットせず、違いが分かりません。 よろしければ、ご回答お願いします。

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんにちは。 >それぞれ、の違いというか特徴が良く判りません。 Excel 2007 では、並列で出てきていますので、ActiveX コントロールが良いのか、フォームコントロールが良いのか、私には、どう答えてよいか分からなくなりました。 言葉で覚えるよりも、ともかく使ってみることですね。 優先順位を作れば、それで覚えていくものだと思います。 ワークシート上の学習の段階では、フォームコントロールを最初に使っていくのが良いと思います。 フォームコントロールには設定の際、英語は、ほとんど出てきません。簡単で軽いし、セキュリティ上のチェックも少なくて済みます。ワークシート上で、ほぼ、設定か可能です。 フォームコントロールは、隠しオブジェクトになりましたので、基本的には、ヘルプを調べてみても使い方は出てきません。私は、Ver.5のマニュアルを数冊持っています。フォームコントロールは、Ver.5(95)の遺産で、ダイアログシートに取り付けるコントロールのことです。今は、実行命令のメソッドも、設定のプロパティも、そのずべてを知っている人は少ないと思います。また逆に知らなくても使えます。Microsoft では忘れ去られた遺物だと思います。 VBAの勉強中というなら、フォームコントロール側は、無視して構いません。 コントロールツール(ActiveX コントロール)の使い方は、UserForm のコントロールツールの「イベント」という機能を覚えさえすれば、概ね同じように扱いが可能です。右クリック・左クリック・そのコントロールをクリックしたり、ダブルクリックしたりして、それによる反応がそれぞれ得られます。とても便利ですが、VBAを知らないと、そこまではできません。 >オートシェイプにマクロ機能を登録する方法 良くわかっているなら別に問題はありませんが、あまりお勧めしません。それは、シートコピーをした時に不具合があるからです。

kdinomh
質問者

お礼

回答有難うございました。 何となくですが、簡易版がフォームコントロールなのかなと感じました。 VBAを勉強して行く上では、ActiveX コントロールの方が良いようなので、 頑張って挑戦しようと思います。

その他の回答 (1)

  • xls88
  • ベストアンサー率56% (669/1189)
回答No.1

フォームではなく、フォームコントロールでヒットするようですよ。 下記ページでどうでしょうか。 VBA入門者の”どっち?”・・・フォームツールバー or コントロールツールボックス(1) http://www.moug.net/tech/exvba/0150071.htm VBA入門者の”どっち?”・・・フォームツールバー or コントロールツールボックス(2) http://www.moug.net/tech/exvba/0150072.htm コントロールについて : ActiveX コントロールと [フォーム] ツールバーのコントロールの使用 http://office.microsoft.com/ja-jp/excel/HP051983111041.aspx

kdinomh
質問者

お礼

ご回答有難うございました。 フォームコントロールと分かっただけで、だいぶ助かりました。 有難うございます。

関連するQ&A

  • Excel VBA コメントに関して

    Excel2003を使用しています。 VBAになるのかは定かではないのですが Excelの機能に「コメント」を付ける機能がありますよね セルに対してカーソルを合わすことで表示される黄色い枠のコメントのことをしるす。 これをオートシェイプやコマンドボタン等のオブジェクトに対してカーソルを合わせることに よってこのコマンドがなんなのかのコメントを付けたい場合Excelでできるのでしょうか? もし、できるとしたならばどのようにしたらいいのでしょうか? VBAを使いできるのか、もっと楽な方法があるのか 教えて頂きたいのです。 ご教授願えないでしょうか、宜しくお願いします(人>д<*ペコ謝) ※補足※ コマンドボタンやオートシェイプでテキストを入れてしまうとボタン自体が入れる文字数によって大きくなってしまうのでできるだけ小さいボタンを作り補足事項やヘルプとして使用したい。 コマンドボタンにはVBAプログラムを組むとして、オートシェイプならば、図形にマクロを登録するとして、カーソルを合わした時のみコメントを表示させたいということです。

  • Excel2010 VBA

    Excel2010でVBAのフォームを使って「コマンドボタン」をクリックしたときにフォーム入力した内容をデータ(リスト)に転記(反映)させたいのですが どのようにしたらいいでしょうか? コマンドボタンの作り方は分りましたがそのマクロを実行する内容(コード)の作り方がいまいちわかません ちなみにデータ(リスト)は上から順番に空白の列を埋められていけばいいです よろしくお願いします

  • excel2000のVBAについて

    excel2000でコマンドボタン(command1)をclickすると VBAの command1_click関数の処理をするという マクロをVBAで作成したいのですが、 (1)excelシート上にコマンドボタンの作成方法 を教えてください

  • PowerPoint VBAコマンドボタンでのマクロ

    PowerPointでVBAを使ったフォームを作製しました。 そのフォームを表示させるためマクロを書き、スライド上に コマンドボタンを配置させマクロを実行させたいと思っています。 ExcelのVBAですとコマンドボタンにマクロを割り当てるのは ツールバーのフォームのコマンドボタンで設置すると簡単ですが PowerPoint VBAですとコントロールツールボックスでのコマンド ボタンしかなくボタンにマクロを割り当てる方法が分かりません。 どなたかコマンドボタンにマクロを割り当てて実行する方法を 教えて下さい。 宜しくお願い致します。

  • VBAで作成したボタンが押せない

    WIN2000でEXCEL2000を使用しています。 エクセルのVBAでダイアログを作成しその中に オートシェイプの四角形ボタンを作成しました。 そのボタンを押すとマクロが実行されるように しています。 しかし、私のPCではボタンを押したら実行できるのに 他のPCではボタンを押しても実行されないPCも あります。他のPCもOS、EXCELは同じものです。 なぜこのような事が起きるのか教えてください。

  • VBAで実行押すまでExcel非表示にしたい

    VBAでユーザフォームを作成しました。 Excelを立ち上げるとExcelシートの前にユーザフォームが出る状態なのですが、 ユーザフォームの実行ボタンを押すまでは非表示にしたいのですが、どのような記述をしたらよいでしょうか? マクロ的に実行ボタンを押すと結果が、Excel上に反映されるので、実行ボタンを押すまで非表示であれば大丈夫です どうか教えてください。

  • ExcelVBA UserFormに沢山のボタンを貼り付けたい

    Excel2003のVBAを使っています。 コマンドボタンが沢山付いたユーザーフォームを起動したいのですが、 フォームに貼り付けるコマンドボタンの個数は、マクロを実行した時に決めたいです。 (例えば任意のセルの値を読み込むなどして) 要するにコードの中で、コマンドボタンの生成をしたいのですが、 可能でしょうか。 VBでプログラム組んでる知人に聞いたところ、「コントロール配列」なるものを利用すれば可能だそうですけど、 VBAにはそれが無いと聞きました。

  • VBAにていろいろ質問させてください

    VBAの処理です。 本来なら別々に質問しなければいけないのですが、 どれでも良いのでお分かりになるものを教えてください。 (1)複数のフォームを起動する場合、既にそのフォームが起動中であるとしる方法。またそのフォームを画面最前線に表示する方法。 (2)ExcelシートのコントロールにはLostFocusが使用できるのですが、VBAのActiveXコントロールにはありません。代替機能はありますか?(必須チェックなどしたいのですが) (3)フォームで[?]ボタンでヘルプを出力したいです。 [?]は閉じるボタンの横に配置できたのですが、 [?]に対する各コントロールのヘルプはどう設定すればよいのですか? すみません。どれでも良いので教えてください

  • エクセル2000(EXCEL)で日毎で実行させるマクロをひとつのオートシェイプに登録する方法

    エクセル2000(EXCEL)でツール→マクロ→マクロの新しい記録(マクロの自動記録)を使用して日によって実行する内容の違うマクロ31個、つまり31日分のマクロを作ったとします。ひとつのオートシェイプを実行ボタンとして使いこれに日毎によって実行するマクロを変える様に登録する事ってできるのでしょうか?日付が変わっている条件としてはNOW関数で拾えるとしてこの条件を元にひとつのオートシェイプで日ごとに実行するマクロを変えるということはできますか?やっぱり実行ボタンとしてのオートシェイプを31個作りひとつづつマクロを登録していくしかないのでしょうか?またできない場合は他にどんな方法があるでしょうか?分かる方宜しくお願いいたします。

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

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

専門家に質問してみよう