|
Kein さん 回答ありがとうございます。
UPしていただいた内容で動作確認いたしましたが、2回目の質問の(1)でも書いておりますが、やはり
> .OnAction = AcPro1: .Characters.Text = Cap1
でエラーになります。 ~~~~~~~~~~~~~~~~~~~~~~~~~~
ちなみに使用している環境は、WinXP Excel2000(SP3)です。
図々しいとは思いますが、対処法をお教え願います。
>セル選択イベントだと、ちょっと頻繁に発生しすぎるので、適切ではないように
>思います。私なら右クリックイベントに変えて
についてですが、上述の《.Characters.Text = Cap1》を除いて試してみましたが右クリックで切替を行う場合、右クリックせずにボタンを押してしまう可能性があります。マクロ実行にActiveCellの色で禁則条件を加えれば良いのかもしれませんが、不特定の人間が作業することを目標としていますので、ちょっと問題があるかなと思えます。スピードかクリック回数減か検討してみます。
また、シート中に計算式として、以下のFunction R_XXX_test()が複数配置されてており、罫線の記入にてシート上の数値をリアルタイムで変化させたいため、A1セルをセル選択イベントで書換えFunction R_XXX_test()を再計算させています。
Function R_XXX_test(YOKO As Variant, XXX_P As Variant, _
XXX_XX As Double, リフレッシュ As Variant)
'リフレッシュにA1を取り込みセル移動で毎回計算させる
'罫線情報取得テスト
Dim shoukei, YOKO_XX
shoukei = 0
If YOKO.Value = "" Then YOKO_XX = 0 Else YOKO_XX = YOKO.Value
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
>
>Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, _
>Cancel As Boolean)
> Dim AcPro1 As String, AcPro2 As String
> Dim Cap1 As String, Cap2 As String
>
> Cancel = True
> Select Case Target.Interior.ColorIndex
> Case 24
> AcPro1 = "model_11": AcPro2 = "model_12"
> Cap1 = "道具L字追加": Cap2 = "道具T字追加"
> Case 35
> AcPro1 = "model_31": AcPro2 = "model_32"
> Cap1 = "コネクタ横伸長": Cap2 = "コネクタ縦伸長"
> Case Else
> AcPro1 = "": AcPro2 = ""
> Cap1 = "": Cap2 = ""
> End Select
> With ActiveSheet.Shapes("Button 8")
> .OnAction = AcPro1: .Characters.Text = Cap1
> End With
> With ActiveSheet.Shapes("Button 9")
> .OnAction = AcPro2: .Characters.Text = Cap2
> End With
>End Sub
|
|