マクロで作成したオプションボタンのイベントを受け取るには?

解決


あや  2006-02-21 10:59:17  No: 130320

はじめまして。
本当に初心者です、よろしくお願いします。

エクセルのシートに、マクロで用紙サイズの名前のラジオボタンを作成しました。

ActiveSheet.OLEObjects.Add(ClassType:="Forms.OptionButton.1", Link:=False, _
        DisplayAsIcon:=False, Left:=158.25, Top:=32.25, Width:=108, Height:= _
        18.75).Select
    Selection.ShapeRange.ScaleWidth 0.3, msoFalse, msoScaleFromTopLeft
    Selection.Verb Verb:=xlPrimary
    Set button1 = ActiveSheet.OLEObjects("OptionButton" & 1).Object
    button1.Caption = "A4"

選択されたボタン名のサイズで印刷設定したいのですが
どう書けばよいのか分かりません。
シート自体が自動生成されます。
どうかご教授お願いします。
VB6.0です。


特攻隊長まるるう  2006-02-22 13:22:38  No: 130321

オプションボタンには種類があって、コントロールツールボックスの
オプションボタンを使うと色々と不都合が出てくるようです。
(確認はできていませんが、表示が重くなるとか、開くのが遅くなるとか、
Tempフォルダにゴミがたまりやすいとかいう書込みがありました)

フォームメニューのオプションボタンを使ってみて下さい。
ショートカットメニューに[マクロの登録]メニューがあり、この
操作はマクロを記録できます。
[Excel VBA]
    With ThisWorkbook.Worksheets("Sheet1").OptionButtons
        Dim opt As Object
        Set opt = .Add(158.25, 32.25, 108, 18.7)
        With opt
            .Caption = "A1"
            .OnAction = "Macro1"
        End With
    End With


あや  2006-02-22 16:10:15  No: 130322

特攻隊長まるるうさま、ありがとうございます!!!

今以下のシートに書き込む方法で試していたのですが
どうしてもオートメーションエラーというものが出てしまっています。
そちらの方法で試してみます。

Dim str_macto As String
 
    str_macto = "Private Sub OptionButton1_Click()" & _
                vbNewLine & vbTab & "MsgBox ""1押した!!""" & _
                vbNewLine & "End Sub"

    ActiveWorkbook.VBProject.VBComponents("Sheet1").CodeModule.AddFromString str_macto


あや  2006-02-23 09:49:19  No: 130323

動的にフォームメニューのオプションボタンを作り
モジュールに押した後の動作を記載するところまではできたのですが
ボタンから、その動作に対するマクロの登録ができません。
これを動的にやる事はできるのでしょうか・・・。

また、動的に
コントロールボタンを作り
そのシートにイベント後の動作を記載する事はできるのですが
その後シート名を変えたり削除するせいか、オートメーションエラーが出ます。
シートをいじる場合は、
シートに動的にマクロを記載することはできないのでしょうか・・・。


あや  2006-02-23 10:19:03  No: 130324

フォームメニューのオプションボタンに
以下の記述で動的に登録する事ができました。

  activesheet.OptionButtons.Add(165, 30, 36, 16.5).Select
  activesheet.Shapes("Option Button 1").Select
  Selection.OnAction = "ファイル名.xls!OptionTest1"

ありがとうございました。


※作成する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。







   このエントリーをはてなブックマークに追加