- ベストアンサー
excel マクロについて
こんにちは。 マウスカーソルでセルをクリックする度に、 空白・マ・×・△・0.5・1R・TOPと順に内容が指定のセル(例としてG4から32R×31Cまでの場合。)のみで実行するには、切り替わるマクロ は、どういったプログラムにしたら、一番良いでしょうか? お願い致します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
クリックは拾えないので、ダブルクリックで。 シート名を右クリックしてコードの表示を選び、出てきたVBE画面にコピペします。 試すなら新規ブックなど、テスト環境で。 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Dim List, i As Integer Cancel = True List = Array("マ", "×", "△", "0.5", "1R", "TOP") If Not Application.Intersect(Target, Me.Range("G4:AE32")) Is Nothing Then Select Case Target.Value Case "" Target.Value = "マ" Case "TOP" Target.Value = Null Case Else For i = 0 To UBound(List) If Target.Text = List(i) Then Exit For Next i If i + 1 <= UBound(List) Then Target.Value = List(i + 1) End Select End If End Sub
その他の回答 (1)
- Wendy02
- ベストアンサー率57% (3570/6232)
>マウスカーソルでセルをクリックする度に >空白・マ・×・△・0.5・1R・TOPと順に内容が指定のセル(例としてG4から32R×31Cまでの場合。)のみで実行するには、切り替わるマクロ は、 って、どういうことなんでしょう?指定のセルのみで、何を実行するのかな? 書き込まれることかな? これは、同じ場所をクリックした時は、有効になりません。 Dim Count As Long Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim myWords Dim i As Long If Target.Count > 1 Then Exit Sub If Intersect(Target, Range("G4").Resize(32, 31)) Is Nothing Then Exit Sub myWords = Array(" ", "マ", "×", "△", "0.5", "1R", "TOP") 'If Target.Value = "$" Then Count = 0 'オプション 例:「$」という文字をクリックすると、Count のリセット i = Count Mod 7 Target.Value = myWords(i) Count = Count + 1 End Sub
お礼
お忙しい中の回答有難うございます。 papayuka様の回答どうりでした。
お礼
完璧です。助かりました。 有難うございました。