[[20051204173823]] 『セルをクリックすると特定の文字列入力』(なる) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『セルをクリックすると特定の文字列入力』(なる)
例えばA1セルをクリックすると、そのセルに”○”などの文字列を入力できて、
もう一度そのセルをクリックするとそれを消せる(空白にする)といった操作が、
マクロではなくて関数式で出来るでしょうか? よろしくお願いします。

 入力規則で
 リストに
 " "と"○"を設定する、ではだめですか?
 スペースは本当の意味では空白ではないですが・・・。
 (MARBIN)

 これも空白ではないのですが・・・。

 A1セルに
 =IF(A2=1,"○","")

 A2セルに入力規則で
 リスト =1,2
 としてみてはいかがでしょう?

 A2で1を選択したときのみA1に○が表示されます。
 (MARBIN)

成程! そういう方法があるのですね。ありがとうございます。

早速やってみました。なかなかスマートにやれました!

ただ、欲を言えば、リストを表示する→選択するといった手順を踏まなくて、

1クリックで出来ないだろうかと考えているのですが…。


 クリックだけでとはなんと横着な・・・(笑
 ダブルクリックやと手ぇが疲れまっか?
 Sheetモジュールに下のコードをコピペ(Sheetタブを右クリック→コード表示)
 戻ってA1をWクリックしてみてくらはい。
      (弥太郎)
 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

    If Target.Address <> Range("a1").Address Then Exit Sub
    Cancel = True
    If Target = "" Then targt = "○"
    Target = IIf(Target = "○", "×", "○")

 End Sub


 「そのセルに」という訳にはいきませんが、フォームのチェックボックスを
 使うとクリックだけでON/OFFの切り替えが出来ます。
(純丸)(o^-')b

 あぁぁぁ、If Target = "" Then targt = "○" この行不要!targtって、なんや!
        (弥太郎)

返事が遅くなって申し訳ありません。やっぱ横着…!?

しかし皆さんすごい! 確かにバッチリです。ありがとうございます。


 ふるいトピを上げてすみません。
 
 最後の弥太郎さんマクロについてなんですが

 ・IIfというのは、HELPで見たところ、IF関数と同じように、真偽の2パターンしか分岐しないようですね。
  これを○×△の3パターンに増やしたいとしたら、CASEを使うのが妥当ですか?
 ・これはA1セル限定の動きですが、
  動作範囲をA1:A100の間の、4行おきのセル(A1,A5,A9,A13…A97)に拡張したい場合
  Range("a1")の部分をどう書き換えればよいでしょうか?

 以上2点、よろしくお願いします(庸)
 

 条件が多いばやいはselect caseを使うんがベターでっしゃろなぁ。
 庸さんのケースやとこんな塩梅でいけまっしゃろ。
     (弥太郎)
  Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Target.Row > 100 Or Target.Column > 1 Then Exit Sub
    If Target.Row Mod 4 <> 1 Then Exit Sub
    Cancel = True
    Target = IIf(Target = "○", "△", IIf(Target = "△", "×", "○"))
 End Sub


 おお、製作者・弥太郎さん御自らのご回答ですね、ありがとうございます♪

 ふむふむ
 Target.Address が Target.Row になるわけですね
 Target.Column > 1 Then Exit Sub
 これは、B列以降を範囲から除くぶん。
 そんで、ORで繋ぎーの、MODで絞りーの、IFを入れ子にしーの…
 あらら、関数と一緒じゃんorz

 実際にはA2,A6,A10…にはあ、い、うが  A3,A7,A11…にはイ、ロ、ハが入るのですが
 これも関数と同じように、
 If Target.Row Mod 4 <> 1 Then Exit Sub
 の部分に階層をつけて分岐させてやれば、たぶんうまくいくと見た!
 がんばってアレンジしてみます。
 行き詰まったらまたきますので、その際には何卒よろしくお願いします(庸)

 うまくいったので、ご報告です。
 なにをこんな程度で喜んでいるかと言わないでくださいね
 私にとっては、これはたいしたことなんですよ^^;(庸)
 
  Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

    If Target.Row < 2 Or Target.Row > 132 Or Target.Column <> 4 Then Exit Sub
    If Target.Row Mod 4 = 0 Then Exit Sub
    Cancel = True

        If Target.Row Mod 4 = 1 Then
            Target = IIf(Target = "◎", "○", IIf(Target = "○", "", "◎"))
        Else
            If Target.Row Mod 4 = 2 Then
                Target = IIf(Target = "A", "B", IIf(Target = "B", "C", "A"))
            Else
                If Target.Row Mod 4 = 3 Then
                                Target = IIf(Target = "有", "無", "有")
                End If
            End If
        End If

 End Sub


 >なにをこんな程度で喜んでいるかと言わないでくださいね
 誰がそんな事いいますかいな!
 でけ映えは!!!でっせ。(笑
      (弥太郎)

 >でけ映えは!!!でっせ。(笑

 ♪♪♪♪ (庸)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.