|
以前【34975】にて質問させていただいた下働きです。
内容は異なるのですが、同じツール作成について質問させて頂きます。
マクロボタンによる作図ツールを作成しているのですが良くわからないところがあるのでお教えください。
先ず下記のように複数の作図及び消去マクロを作成しました。これをマクロボタンに登録して作図ツールとしようと思うのですが、数が多くなり紛らわしくなります。またマクロを使う場所が2種類(セルを赤:道具系と青:コネクタ系に塗り分けています)ありますので、押し間違いをなくしたいと思っています。
そこで、ActiveCellが赤だったら道具系マクロを登録、青だったらコネクタ系マクロを登録、それ以外だったら登録しないとしたいのですが、良い方法を教えてください。
マクロの記録でマクロボタンの登録動作を調べましたがマクロ番号が順次変わってしまってうまくいきません。よろしくお願いいたします。
例)
A B C D E F
1 [マクロボタン1] [マクロボタン2] ←ActiveCellの色により
2 ボタン名称、機能を
3 [ 赤 ] [ 青 ] [ 赤 ] 切り替えたい。
4
5
6
7 [ 赤 ] [ 青 ] [ 青 ]
8
Sub model_11()
' モデリング 道具追加
ActiveSheet.Range("AK3:AN4").Copy
ActiveCell.Offset(3, -1).Range("A1").Select
ActiveSheet.Paste
ActiveCell.Offset(1, 0).Range("A1").Value = 0
ActiveCell.Range("A1:D1").Value = ""
ActiveCell.Select
End Sub
Sub model_42()
' モデリング コネクタ消去
ActiveCell.Offset(1, 0).Range("A1:A5").Borders _ (xlEdgeRight).LineStyle = xlNone
End Sub
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
ちなみに前回の質問については下記内容で一応動作しました。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
With Target
If .Column < 255 Then
If [a1].Value <> "" Then
[a1].Value = [a1].Value * (-1)
Else
[a1].Value = 1
End If
Else: [a1].Value = ""
End If 'ifを入れなくても良さそう※要再検証
End With
End Sub
Function R_XXX_test(YOKO As Variant, XXX_P As Variant, _
XXX_XX As Double, リフレッシュ As Variant)
'リフレッシュにA1を取り込みセル移動で毎回計算させる
'罫線情報取得テスト
Dim shoukei, YOKO_XX
If YOKO.Value = "" Then YOKO_XX = 0 Else YOKO_XX = YOKO.Value
shoukei = 0
If KIKI_P.Borders(xlEdgeRight).LineStyle <> xlNone Then
shoukei = shoukei + XXX_XX
If YOKO.Borders(xlEdgeBottom).LineStyle <> xlNone Then
shoukei = shoukei + YOKO_XX
If shoukei = 0 Then R_XXX_test = "" Else _
R_XXX_test = shoukei
End Function
|
|