[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『セルのボタン化(マクロボタン)』(たぬき)
いつもお世話になっております。
セルをボタン化にするあたり
ネットで調べて 出来るようになりました。
しかし 二つ目のボタン化を作るとエラーで出来なくなります。
色々調べても二つ目のがなくて…
今回使ったマクロ
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.