• 締切済み

エクセル マクロについて

自動マクロで作成したマクロのモジュールを コマンドボタンのコードに貼り付けたのですが 実行できません。 自動マクロからでは実行できるのですが。。。

みんなの回答

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

こんにちは。 コマンドボタンは、どのようにして作られたものかわかりませんが、通常、コントロールツールのCommandButton の場合は、編集可能な状態(青い三角定規ボタンをオン)にしておいて、ダブルクリックすると、イベント・コード(Clickなどがついている)がブックと結び付けられます。 そのような状態から、コードを貼り付けないと、そのマクロは眠った状態のままになっています。 エディタ画面の白い画面の直近の横長の細い2つの窓に オブジェクト名           プロシージャ名 (General)             CommandButton1_Click となっていたら、眠っています。その場合は、オブジェクト名のドロップボタンで、CommandButton1 を探して指定します。 できあがったら、編集可能(青い三角定規ボタンをオフ-Visual Basic Editorのツールバーまたは、コントロールツールバーの中)にして編集不可にします。

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

シートに置いた CommandButton って事なら、マクロ記録で書かれたコードの中身だけをクリックイベントに書くか、クリックイベントからマクロ記録を呼び出すかです。 例えば、マクロ記録で下記のように記述された場合は、 Sub Macro1()   Range("A1").Select   ActiveCell.FormulaR1C1 = "a"   Range("A2").Select End Sub 1)CommandButton のクリックイベントに中身だけを転記する。 Private Sub CommandButton1_Click()   Range("A1").Select   ActiveCell.FormulaR1C1 = "a"   Range("A2").Select End Sub 2)CommandButton のクリックイベントから呼ぶ Private Sub CommandButton1_Click()   Macro1 End Sub の何れかでOKです。