• ベストアンサー
  • 困ってます

ExcelVBAのデザインモード

お世話になります。 Excell2003の時に、デザインモードボタンを操作する事により、シート上に、 コマンドボタン等のボタンを貼り付ける事が出来ました。 マクロ記録の様な使い方ではなく、あくまでもフォーム上のボタンをシート状に貼り付ける使い方を目的としています。 これで、コードはシート上に展開されて、ボタンのプロパティも操作する事が出来ていました。 ところが、Excell2010で同じ事を行なうと、コードはMojule1に展開されます。ボタンのプロパティは操作する事が出来ません。 例えば、CmdButtun.Caption="XX"の様な事をするとコンパイルエラーになる。 デザインモードの使い方で、どこが間違っているのでしょうか? よろしくお願いします。

共感・応援の気持ちを伝えよう!

  • 回答数1
  • 閲覧数1338
  • ありがとう数1

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

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

>>コードはシート上に展開されて、<< どの版でもそんなことはありえないと思います。 あるとしたらExcel95の頃かもしれませんが、そのころについてはわかりません。 VBE上で編集するしかないはずです。 >>ボタンのプロパティも操作する事が出来ていました。<< CommandButtonの場合は2010版でも同じです。 >>コードはMojule1に展開されます<< これはフォームコントロールの場合です。 フォームコントロールではプロパティシートはないです。 ボタン1_Click()のようなclickイベントプロシージャが1つあるだけです。 以前から使っていらしたのなら間違えるはずはないと思いますが お書きになっている文言を見ると フォームコントロールとActiveXコントロールを混同しているところがあるようです。 *2007版が出たころは旧版のものを開くと、ボタン類がどれも図になってしまうバグがありました。それと仕事の都合で長い間VBAから遠ざかっていたのですが、最近やってみると問題なく移行できるようです。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

早速のご返事ありがとうございます。 ご回答文章を何回も読み直し、色々試しました。 Excel2010で、デザインモードボタン横の、コントロール挿入ボタンのメニューを良く見ると フォームコントロールとActiveXコントロールがありますが、 フォームコントロールの方でボタンを作成すると、Module1にコードが生成される ActiveXコントロールでボタン作成すると、Sheet上にコードが作成される と云う事に気が付きました。 Excel2003で、もう一度、デザインモードをやってみました。 こちらでは、コントロールツールボックス・メニューが表示されますが、ここには記述はありませんが ここのメニューは全て、ActiveXコントロールである事にも気が付きました。 今までは、二つのコントロールを意識しないで使っていた事になります。 8年間、気が付かなかったことにもなりますね。 厚くお礼申し上げます。

関連するQ&A

  • EXCEL2010デザインモードが勝手に解除

     EXCEL2010で、シートに「コマンドボタン」を追加し、「開発」リボンの「デザインモード」ボタンをクリックして追加した「コマンドボタン」のコードを編集したいのですが。。。  「デザインモード」ボタンをクリックして非活性化(デザインモード)するのですが、追加した「コマンドボタン」をクリックした時点で「デザインモード」ボタンが活性化(非デザインモード)してしまい、ボタンに登録したメッセージ(MsgBoxを使った”hallo!")が表示されます。  実際にはコードの編集も別の方法で出来るのですが、デザインモードでボタンのコード編集をしたいと考えています。また、コードの編集中に間違えてボタンをクリックしてしまった時に実行されるのも困るかと。  どなたかご教授頂ければ幸いです。

  • デザインモードの終了

    面白半分でチェックボックスを作ったのですが、使い方も良く分からず、削除しようと試みましたが「削除」というのがありません。そこで、「切り取り」してクリップボードに張り付いたものを削除して、ほっと一安心だったのもつかの間、もともと作成されていたコマンドボタンを使おうとカーソルを合わせると「'CheckBox1'は作成されていないため、デザインモードを終了できません。」と出ます。どうすれば終了できますか?

  • Excel デザインモードが起動しない

    コントロールツールボックスより、コマンドボタンを作成しました。 再編集しようと思い、デザインモードを選択したのですが、デザインモードが起動できません。 デザインマーク(三角定規のアイコン)をクリックすると、なぜかデザインモードに移行せず、そのまま決定(デザインモードの終了)になってしまいます。 いままではこのようなことはなかったのですが… Excelに詳しい方のご教授をお願いします。

  • ExcelVBAのコードが知りたい

    ちょっと古いことを教えてほしいのですが。 というのは、新しく知り合いになった方から、古いプログラム(Excel-VBA)を直したい、という相談を受けました。 ところが、ものすご~く古いものらしくて 1)VBAProjectを開いてみると、シートオブジェクトと標準モジュールはあるのですが、フォームが表示されません。     でも、実際の動きをみると、入力用のフォームなどは表示されます。 2)良く見ると(Sheet表示を全部見ると)、シートオブジェクトに表示されないものがあって、そこにX1DG,X2DG・・・という名前のダイアログシートがあって、そのシート上にフォームがありました。 3)Macroを動かすいわゆるボタンはなくて、リボンの中のアドインを選ぶと、”ユーザー設定のツールバー”が表示され、その中にプルダウンメニューが設定されていて、これを操作すると、それぞれの機能が動きます。 3)動作するVBAのコードは標準Module上に書かれていますが、上記のダイアログの中の定義体や、ユーザー設定のツールバーの中のコードがどこを探しても出てきません。 4)VBAの教科書などを見ると、どうもEXCEL95/Excel4.0の時代のもののように見受けられます。 5)今使用している(知り合いの方も、私も)ものは、WinVISTA・Excel2007なのです。 どうしたら、全体構成(VBA・DG)を見ることができるでしょうか? 教えていただけると、むちゃくちゃ嬉しいのですが。 宜しくお願いします。

  • [ExcelVBA] コマンドボタンを押しっぱなしにしている間、マクロを繰り返す方法

    AccessVBAでは、コマンドボタンで「AutoRepeat」プロパティを使えば、 コマンドボタンを押しっぱなしにしている間、繰り返して処理を続けます。 しかし、 Excelの場合、コマンドボタンにAutoRepeatのような「繰り返しプロパティ」がありません。 このような場合、どのように同様な処理を行うのでしょうか? 簡単な作動例のコードを教えていただけると幸いです。 たとえば。作動のイメージですが。 Sub test1() range("A1")=range("A1") + 1 End Sub このtest1というマクロを、コマンドボタンを押しっぱなしにしている間、 繰り返して足し続けるような処理です。 コマンドボタンを1回クリックすれば、セルA1の数字は1増えますし、 押しっぱなしにしている間はカウントが増え続けます。

  • ExcelVBA WorkSheet上の全てのCheckBoxをON・OFFする

    ご教授いただければと思います。 環境はExcel2000とWindows2000です。 現在このようなシートがあります -----WorkShet-----  ↓全てのチェックボックスをONにするコマンドボタン  □  ↓CheckBox1_1 ↓CheckBox2_1 ↓CheckBox3_1  □ □ □  ↓CheckBox1_2 ↓CheckBox2_2 ↓CheckBox3_2  □ □ □ ------------------ 「全てのチェックボックスをONにするコマンドボタン」を押す事により、 全てのCheckBoxをOnにしたいのです。 現在はCheckBox1_2.Vlue = Trueのようにしています。 これからCheckBoxの数が増える予定なので、いちいちコードを増やす事のなくしたいのですが、どのようにしたらよいでしょうか? よろしくお願いします。

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

    お世話になっております。 VBAエクセルのフォームについて教えていただきたいのです。 VBAで入力のフォームを作ったのですが(TEXT BOXが4つ、コマンドボタン1つ、コマンドボタンを押したときに登録される用にしたい) 各シートの集計にしたい為、各シート(31のシートがあります)に入力フォームがあります、その各シートでの入力結果を1つのシートに 集計したいのですが、どの様なコードにしたらようか判りません。 素人のためお手数ですが、なるべく判りやすくお願いします。 よろしくお願いします。

  • 《エクセル2000VBA》なぜコンパイルエラーになるのかわかりません…

    最近、ここには本当にお世話になっております。 以前作ったVBA(コマンドボタンを押すと、別シートにデータが転記される)のコードを変更したら、一番上のPrivate Subの行の文字が赤くなり、コピー元のシートのボタンにカーソルを持っていくと「コンパイルエラーです」と出るようになってしまいました。 そこでバックアップで保存してあった、問題なく動く過去のファイルを開いてみたのですが、Private Sub周辺の部分の書き方は全く同じです。 というわけで、Private Subがコンパイルエラーになる条件が、よくわからないのですが… 原因が思いつかず、ほとほと困っています。 何とかこの現象を解決したいのですが、どうすればいいでしょうか。

  • エクセルのマクロボタンがデザインモードのままになる

    2013です。 ボタンを押すとマクロが走るようにセットしました。快調に動いていました。 ところが、ある日、急に、ボタンのところにポインタをもっていっても、ポインタがデザインモードとして表示されるようになりました。つまり、矢印の上に十字架が出た状態です。 これでは、ボタンを押すことができなくなります。デザインモードの解除を行えないのです。 2013のバグなのではないでしょうか。 これまでは、シート上に6つのボタンを並べ、ボタンを押せば、押したマクロが動くようにしていました。例えば、「グラフ」というボタンを作り、そのボタンを押せば、グラフというマクロがは動くと言うあんばいです。しかし、何日かして、上に記述した状態になるとどうしようもありません。仕方がなく、新規に6つのボタンを改めて作り、マクロが動くようにしました。前の6つのボタンはすべて削除です。これで、なんとか動くようになったと喜んでいたら、10日ぐらいしてまた、デザインモードから変化できなくなりました。 しょうがないので、やらせたい仕事6つをリストに並べ、その横にボタンを置き、ボタンを押すと、リストに書いてあるマクロを実行するようにしました。 これだと、再び、デザインモードから変化しなくなっても、一個だけボタンを作れば解決するからです。しかし、どうも腑に落ちません。

  • アクセスVBAでエクセルを操作するのは不可能でしょうか?

    アクセスVBAでエクセルを操作するのは不可能でしょうか? テスト.xlsのシート1の1行目コピーして テーブルに追加するということがしたいのですがどういうコードを書けばいいのか分かりません。 テスト.xlsは開いている状態です。 アクセス側のユーザーフォーム上のコマンドボタンをクリックしたらこの動作を実行するコード。。。 というのは不可能でしょうか?よろしくお願い致します。