はじめまして。
本当に初心者です、よろしくお願いします。
エクセルのシートに、マクロで用紙サイズの名前のラジオボタンを作成しました。
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です。
オプションボタンには種類があって、コントロールツールボックスの
オプションボタンを使うと色々と不都合が出てくるようです。
(確認はできていませんが、表示が重くなるとか、開くのが遅くなるとか、
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
特攻隊長まるるうさま、ありがとうございます!!!
今以下のシートに書き込む方法で試していたのですが
どうしてもオートメーションエラーというものが出てしまっています。
そちらの方法で試してみます。
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
動的にフォームメニューのオプションボタンを作り
モジュールに押した後の動作を記載するところまではできたのですが
ボタンから、その動作に対するマクロの登録ができません。
これを動的にやる事はできるのでしょうか・・・。
また、動的に
コントロールボタンを作り
そのシートにイベント後の動作を記載する事はできるのですが
その後シート名を変えたり削除するせいか、オートメーションエラーが出ます。
シートをいじる場合は、
シートに動的にマクロを記載することはできないのでしょうか・・・。
フォームメニューのオプションボタンに
以下の記述で動的に登録する事ができました。
activesheet.OptionButtons.Add(165, 30, 36, 16.5).Select
activesheet.Shapes("Option Button 1").Select
Selection.OnAction = "ファイル名.xls!OptionTest1"
ありがとうございました。
| ツイート |
|