dポイントプレゼントキャンペーン実施中!

エクセルVBAで新規シートを作成するマクロを作りました。

この作成した新規シートにマクロを登録しているボタンなどを配置することはできるでしょうか?
その方法があれば教えてください(どういう検索でたどり着けるかでもOKです)

よろしくおねがいします。

質問者からの補足コメント

  • 誤解を招く箇所があったので、補足させていただきます。

    つまり、プログラムで作成した新規シート、これに予めボタンなどが自動的に配置されている状態にできないか?ということです。

      補足日時:2015/04/01 20:26

A 回答 (3件)

こんにちは。



この質問って、簡単ではないような気がしますね。

>プログラムで作成した新規シート、これに予めボタンなどが自動的に配置されている状態にできないか?
どういう手順内容か、書かれていないので、一番、むつかしいことも考えてしまいますね。
ボタンをつける話などは、それに比べたら、大したことはないのですが、新規のシートにボタンが配置さ、マクロを起動させるものとなると、さて、どうするかなっていう所なのです。

これを考えると、ボタンがどうということだけでなくなってしまいます。それで真っ先に思い浮かぶのは、予めテンプレートを作っておいて、それを実体化させる方法なのです。

アドインとか言い始めたら、キリがありませんしね。
VBAコードをVBAで書く方法もないわけではなのですが、それは、できるだけ避けたいのです。

こういうことを使って配置しても、ボタンのコードのほうをどうするか、っていうことです。

'//
'フォームボタン
Sub TestAddButtn1()
 Dim x1 As Double, x2 As Double, y1 As Double, y2 As Double
 With ActiveSheet.Range("A1")
  x1 = .Left
  y1 = .Top
  x2 = .Offset(, 2).Left
  y2 = .Offset(2).Top
 End With
 With ActiveSheet.Buttons.Add(x1, y1, x2 - x1, y2 - y1)
  .Text = "Frmボタン"
 End With
End Sub
'OLE(ActiveX )ボタン
Sub TestAddButtn2()
 Dim cmdBtn As OLEObject
 Dim x1 As Double, x2 As Double, y1 As Double, y2 As Double
 With ActiveSheet.Range("C1")
  x1 = .Left
  y1 = .Top
  x2 = .Offset(, 2).Left
  y2 = .Offset(2).Top
 End With
 Set cmdBtn = ActiveSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.1")
 With cmdBtn
  .Left = x1
  .Top = y1
  .Width = x2 - x1
  .Height = y2 - y1
  .Object.Caption = "Oleポタン"
 End With
End Sub
    • good
    • 0

「マクロの記録」は分かりますか?


簡単に言うと、これを使えば手作業で行った作業をマクロに出来ます。
今回の場合、「マクロの記録」を開始してから「ボタンを配置してマクロを登録する」を行えばマクロが記録されます。

できあがったマクロ(若干の手直しは必要かもしれませんが)を新規シートを作成するマクロに組み込めばいいでしょう。
    • good
    • 0

こんにちは。



「ボタンを配置してマクロを登録する」をマクロの記録で記録すれば、マクロが出来ます。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。質問がわかりにくかったので補足を追加しました。
お分かりになりましたらお手数ですが再コメントよろしくお願いいたします。

お礼日時:2015/04/01 20:26

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています