2016-08-30 11 views
0

"全体的"というExcelワークシートがあります。ここには、A13、B13、C13、D14に計4つの数字が記載されています。数字は0,1,3、および4に設定されました。Excel VBA DoubleClick:数字を記号に置き換えてください

VBAを使用して数字のうちの1つをダブルクリックして記号に置き換える方法を教えてください。たとえば、A13に配置された数字0をクリックすると、コードが "24EA"のシンボルに置き換えられます。そのシンボルはその周りに円がある0です。私はそれから、数字をクリックして円なしで通常の0にすることが可能であることを望みます。

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

If Intersect(Target, Range("A13:D13")) Is Nothing Then Exit Sub 

If Target.Value = "0" Then 
    ActiveCell.FormulaR1C1 = ChrW(&H24EA) 
    With Selection.Font 
     .Name = "Calibri" 
     .Size = 16 
    End With 
ElseIf ActiveCell.FormulaR1C1 = ChrW(&H24EA) Then 
    Target = "0" 
    With Selection.Font 
     .Name = "Calibri" 
     .Size = 9 
    End With 
End If 

どうすればできますか?

+1

ワークシートのVBAモジュールに次のようなものを追加しますか?ダブルクリックイベントを検索すると、そこに多くのサンプルがあることは確かです。 – arcadeprecinct

+0

私はこれを試してみましたが、数字0のA13をクリックすると、「コンパイルエラー:Else without If」というエラーが表示されます。 'プライベートサブWorksheet_BeforeDoubleClick(ByValの対象を範囲、booleanとしてキャンセル) 交差(対象、範囲( "A13:D13は"))場合Target.Value = "0" すると ActiveCellの場合はサブ を終了して次に何物でもありません。 FormulaR1C1 = ChrW(&H24EA) Selection.Font .NAME = "Calibri" .Size = 16 のElseIf ActiveCell.FormulaR1C1 = ChrW(&H24EA)次に ターゲットSelection.Font .NAME付= "0" =付"Calibri" 。サイズ= 9 終了の場合 ' –

答えて

1

は、あなたが何をしようとしたことがあり

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 
    With ActiveCell 
     Select Case .Value 
      Case "0": .Value = ChrW("&H24EA") 
      Case ChrW("&H24EA"): .Value = 0 ' untested 
      ' ... 
     End Select 
    End With 
End Sub 
+1

動作しているようです!しかし、再び0をクリックすると(円の記号)、数字0に戻りませんか? –

+1

変換する必要はありません。 'ChrW("&H24EA ")' –

+1

「Tim Edwards」ありがとうございました。私はそれを知らず、それに応じて答えを更新しました。 'M.V.':もっと洗練された方法があるとしても、それを元に戻してみてください –

関連する問題