- ベストアンサー
Excel セルをクリックするだけで入力(エクセル2003)
http://questionbox.jp.msn.com/qa915096.html からの転載で申し訳ありません。 この中で、jindonさまの方法で、2つの文字の入れ替えはできました。 ------------------------------------------------ Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) With Target If .Row=1 And .Column=1 Then If .Value = "○" Then .Value = "" Else .Value = "○" End If End If End With End Sub ------------------------------------------------ そこで、例えば○△×のように、順番に3つの文字を入れ替えるにはどう記述すればよいでしょうか? よろしくお願いいたします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは #1の捕捉です。 IF文は以下のような書き方ができます(IF文のハシゴ)。 IF 条件1 THEN 処理1 ELSEIF 条件2 THEN 処理2 ELSEIF 条件3 THEN 処理3 ELSE 処理4 ENDIF
その他の回答 (3)
- okormazd
- ベストアンサー率50% (1224/2412)
処理はいろいろ考えられるが。 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) With Target If .Row = 1 And .Column = 1 Then Application.EditDirectlyInCell = False 'これをいれておくといい If .Value = "○" Then .Value = "△" ElseIf .Value = "△" Then .Value = "×" ElseIf .Value = "×" Then .Value = "" Else .Value = "○" End If Else Application.EditDirectlyInCell = True 'これをいれておくといい End If End With End Sub
お礼
できましたー! 「これをいれておくといい」 の部分は、セルをダブルクリックしたときに、変更した文字が選択状態にならずに、続けてダブルクリックで次の文字に移行できるようになるんですかね? 理想的なものができました。 ありがとうございました!
- cistronezk
- ベストアンサー率38% (120/309)
文字がもっとたくさんある場合は、IF文では大変なので以下のようにする方法もあります。 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) With Target .Value= Mid( "○×△", InStr("○×", .Value) + 1, 1) '検索対象の文字列は最後の文字を除いておく。 End With End Sub
お礼
できましたー! この方法なら文字がたくさんある場合に記述が少なくていいですね! ありがとうございました!
- A88No8
- ベストアンサー率52% (836/1606)
こんにちは >例えば○△×のように、順番に3つの文字を入れ替えるにはどう記述 下記の「ここから」~「ここまで」のif文が「○なら""(長さ0の文字列)、それ以外なら○」となっているので、「""なら○、○なら△、△なら×、×なら..それ以外なら""」というようにつないでいくif文のハシゴにしたらよいと思われます(CASE文は他の方のご助言を仰いで下さい)。 --- Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) With Target If .Row=1 And .Column=1 Then If .Value = "○" Then 'ここから .Value = "" ' Else ' .Value = "○" ' End If 'ここまで End If End With End Sub
お礼
できましたー! この方法なら1つの条件の文字数が複数ある場合に使えますね! ありがとうございました!