• ベストアンサー

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つの文字を入れ替えるにはどう記述すればよいでしょうか? よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • A88No8
  • ベストアンサー率52% (836/1606)
回答No.2

こんにちは #1の捕捉です。 IF文は以下のような書き方ができます(IF文のハシゴ)。 IF 条件1 THEN  処理1 ELSEIF 条件2 THEN  処理2 ELSEIF 条件3 THEN  処理3 ELSE  処理4 ENDIF

ein-zwei
質問者

お礼

できましたー! この方法なら1つの条件の文字数が複数ある場合に使えますね! ありがとうございました!

その他の回答 (3)

  • okormazd
  • ベストアンサー率50% (1224/2412)
回答No.4

処理はいろいろ考えられるが。 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

ein-zwei
質問者

お礼

できましたー! 「これをいれておくといい」 の部分は、セルをダブルクリックしたときに、変更した文字が選択状態にならずに、続けてダブルクリックで次の文字に移行できるようになるんですかね? 理想的なものができました。 ありがとうございました!

回答No.3

文字がもっとたくさんある場合は、IF文では大変なので以下のようにする方法もあります。 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) With Target .Value= Mid( "○×△", InStr("○×", .Value) + 1, 1) '検索対象の文字列は最後の文字を除いておく。 End With End Sub

ein-zwei
質問者

お礼

できましたー! この方法なら文字がたくさんある場合に記述が少なくていいですね! ありがとうございました!

  • A88No8
  • ベストアンサー率52% (836/1606)
回答No.1

こんにちは >例えば○△×のように、順番に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

関連するQ&A