|
ある決められたセル範囲内には特定の文字しか入力しない場合、例えば「晴れ、曇り、雨」や「○、△、×」などですが、これらをそのつど入力するのに手間を感じる場合はマクロを記述していればいいでしょう。 特定のワークシートでのみ動作させる場合は、そのワークシートモジュール内に以下のプロシージャを記述します。
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
End Sub
すべてのワークシートで動作させる場合は、ワークブックモジュール内に以下のプロシージャを記述します。
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
End Sub
これらのプロシージャはVisual Basic Editorのコードウィンドウ上部のドロップダウンリストボックス内から選択すれば自動で記述されます。 A列に「○、△、×」をダブルクリックで入力する場合(ワークシートモジュール)
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Column = 1 Then
Select Case Target.Value
Case ""
Target.Value = "○"
Case "○"
Target.Value = "△"
Case "△"
Target.Value = "×"
Case Else
Target.ClearContents
End Select
Cancel = True
End If
End Sub
上のプロシージャが記述されたワークシートのA列をダブルクリックすると、「○ → △ → × → 空白 → ○」の順に変わります。○、△、×以外の文字が入力されていると削除されます。 さらに条件を加えて1行目と2行目をダブルクリックしても動作せず、3行目以降ならば実行されるようにしてみましょう。
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Column = 1 And Target.Row > 2 Then
Select Case Target.Value
Case ""
Target.Value = "○"
Case "○"
Target.Value = "△"
Case "△"
Target.Value = "×"
Case Else
Target.ClearContents
End Select
Cancel = True
End If
End Sub
|