[[20170216094702]] 『セルのボタン化(マクロボタン)』(たぬき) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『セルのボタン化(マクロボタン)』(たぬき)

いつもお世話になっております。

 セルをボタン化にするあたり

ネットで調べて 出来るようになりました。

しかし 二つ目のボタン化を作るとエラーで出来なくなります。

色々調べても二つ目のがなくて…

今回使ったマクロ
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not (Target.Row = 1 And Target.Column = 1) Then Exit Sub
macro1
End Sub

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not (Target.Row = 1 And Target.Column = 2) Then Exit Sub
macro2
End Sub

全部で8つのボタンを作ろうと思います。
フォームコントロールのボタンを作ればいいじゃないの?
って突っ込まれそうですが。。。

並び等のずれで…納得いくものができなくて
セルならぴったりおさまるからと考えたのです。

何卒よろしくお願いいたします。

< 使用 Excel:Excel2007、使用 OS:Windows7 >


こんにちは

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

    If Target.Row > 1 Then Exit Sub
    Cancel = True
    Select Case Target.Column
        Case 1: macro1
        Case 2: macro2
    End Select
End Sub

こんな感じで。

(ウッシ) 2017/02/16(木) 10:00


ウッシ様

ありがとうございます。
イメージ通りができました。

Case 1 を  Case 3 にすると Cの1がボタン化になるんですね。

If Target.Row > 1 Then Exit Sub で

1を2に変更すると2列目のと思っていたのですが、1列も2列もボタン化になるんですね。

列の指定は出来ないものでしょうか?

よろしくお願いいたします。
(たぬき) 2017/02/16(木) 10:49


こんにちは

If Target.Row > 1 Then Exit Sub 

は、行の指定です。

2行目のみにするのなら、

If Target.Row <> 2 Then Exit Sub

にして下さい。

Case で列番号ごとの処理を指定します。

(ウッシ) 2017/02/16(木) 10:54


 セルのダブルクリックで実行指示をしたいということなら ご自身でも書かれ、また ウッシさんから
 その正しい記述がでていますので解決でしょうけど、

 >>フォームコントロールのボタンを作ればいいじゃないの? 
 >>って突っ込まれそうですが。。。 

 はい。つっこみたいですね。 なぜ、そうしないのですか?
 フォームツールのボタンを複数配置したとしても、登録するマクロは1つですみますよ。

 どうしてもシートモジュールにコードを書きたいんだということなら ActiveXのCommandButtonを配置すればできますね。
 でも、コード自体は、フォームツールとは異なり、CommandButtonごとに Clickイベントを用意するなり
 クラス処理をするなり が必要ですから、素直に フォームツールボタンで1つのマクロにしておいたほうが
 いいわけですけど。

( β) 2017/02/16(木) 11:09


 >並び等のずれで…納得いくものができなくて 
 >セルならぴったりおさまるからと考えたのです。 
 フォームボタンを一つ作成後、そのボタンを選択、描画ツールの書式タブで配置-配置の枠線に合わせるをオンにすると
 それ以降、ボタンの作成、移動時にセルに合わせることができる。

(ねむねむ) 2017/02/16(木) 11:42


ウッシ様

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

β様
なぜ、そうしないのですか?
見た目の並びをきれいにしたかったのです。
ボタン、見た目もきれいにしてくれ(それぞれのボタン、見た目のずれがないよう)
と無茶ぶりがあって。。。

それならセルでボタン化したほうがきれいじゃんという発想からです><

ねむねむ様
その手もあったんですね。

アドバイスありがとうございました。
(たぬき) 2017/02/16(木) 14:58


 >たぬきさん

 フォームコントロールのボタンをセルにピッタリ合わせる方法です。マクロの登録もしてます。A1セルに合わせてボタンを作成します。

 Sub ボタン作成()
    Dim B As Object
    Dim btn1 As Button
    Dim sh As Worksheet

    Set sh = ThisWorkbook.Sheets("ボタン")'★シート名は「ボタン」
    sh.Rows("1:1").RowHeight = 27 ' 高さ27 (36ピクセル)

    For Each B In sh.Buttons
        B.Delete '★シートにあるボタンを全削除しておく
    Next B
   '***************************************************************************
    With sh
         Set btn1 = .Buttons.Add(.Cells(1, 1).Left, _
                                 .Cells(1, 1).Top, _
                                 .Cells(1, 1).Width, _
                                 .Cells(1, 1).Height)
    End With

    With btn1
        .OnAction = "国際パーツ確認マクロ"'★実行するマクロ(プロシージャ)の名前
        .Text = "実行"'★ボタンに表示する名前
        .Name = "Button_1"'★ボタンのName
    End With
   '***************************************************************************
    Set sh = Nothing
    Set btn1 = Nothing  
 End Sub

(マリオ) 2017/02/16(木) 22:10


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.