« ボタンに画像を使用する | トップページ | セルの枠線を非表示にする »

2011年10月 9日 (日)

VBAでコマンドボタンを作成

手動でのボタンの作成については、
記事『ボタンを使ってマクロを実行する』を
参照してください。

コマンドボタン作成するところまでは
マクロ自動記録されますが、
プロパティの変更は記録されませんでした。

こんなときはVBAヘルプを一生懸命見ます。
相変わらず要素要素がバラバラでわかりにくい。

コマンドボタン作成からプロパティの設定まで
Withステートメントの中で実行します。

Addメソッド、各プロパティの詳細は
VBAヘルプにあります。

コマンドボタン作成用のテンプレートコードはこちら

コマンドボタンを作成するコード:

Sub macro11101a()
'VBAでコマンドボタンを作成

    With ActiveSheet.OLEObjects.Add( _
        ClassType:="Forms.CommandButton.1", _
        Link:=False, _
        DisplayAsIcon:=False, _
        Left:=100, _
        Top:=100, _
        Width:=30, _
        Height:=30)
       
        .Object.Caption = "表示文字 "
        .Object.ForeColor = RGB(0, 0, 0) '文字色
        .Object.BackColor = RGB(200, 200, 200) '背景色
       
        '画像を使用 する場合
        .Object.Picture = _
            LoadPicture ("画像ファイルへのパス")
        .Object.PicturePosition = 7 '既定値
            'PictureとCaptionの位置
        .Object.Caption = "" 'Caption なしでもよい
       
    End With

End Sub

ボタンに画像を使用する場合は
コメントの「画像を使用する場合」以下を使ってください。
使わない場合は削除してください。

コマンドボタンはCaptionなしでも使えます。
Caption = ""、つまりCaptionなしにすると
画像を完全に中央に配置されます。

PicturePositionの値をいろいろと変えてはみますが、
画像を完全に中央に配置したいときは
Captionなしの方が苦労しないと思います。

|

« ボタンに画像を使用する | トップページ | セルの枠線を非表示にする »

コメント

はじめまして。

今やっている作業にこのコードを参考にさせてもらったのですが、ボタンを作成後 そのボタンにイベントを持たせるには どのようなコードを追記したら良いですか?
ほとんど独学で必要なところしか勉強してなく
基礎がなっていないので 素人な質問ですが宜しくお願いしますm(__)m

投稿: やすし | 2014年12月12日 (金) 00時45分

コメントありがとうございます。
ボタンを押したときにマクロを実行させる方法については、
記事『ボタンを使ってマクロを実行する』を
参照してみてください。

投稿: 管理人やむえむ | 2018年1月 2日 (火) 20時19分

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: VBAでコマンドボタンを作成:

« ボタンに画像を使用する | トップページ | セルの枠線を非表示にする »