[[20040818141911]] 『クリックするだけでチェクマーク』(hiro) >>BOT

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

 

『クリックするだけでチェクマーク』(hiro)

セルにクリックするだけでそのセルにチェクマークをつける、みたいなことは出来るのでしょうか?教えていただけるとありがたいです。お願いします。


 「フォーム」や「コントロールツールボックス」のチェックボックスを使うのでは
ダメですか?
(ケン)


 もしマクロを使うときは、「ダブルクリック」か「右クリック」でないと対応できません。

  (INA)


 やってみたのですが、よくわかりません。具体的に教えていただけるとありがたいです。
 (hiro)


 コードに貼り付けます。
(夏目雅子似)
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Cancel = True
    If TypeName(Target.Comment) = "Nothing" Then
        Target.AddComment
    Else
        Target.ClearComments
    End If
End Sub


 表示>ツールバーよりフォームかコントロールツールボックスを選び
ツールバーのチェックボックスを選択してシートにドラックして配置します。
コントロールツールボックスの物の場合、三角定規のマークをクリックして
デザインモードから抜け出てください。
出来ましたか?
(ケン)ん〜コメントで来たか〜


 チェックボックスはでてくるのですが・・・セルの中には入らないのでしょうか?
(hiro)


 ドラッグしてうまく配置出来ませんか?
(ケン)


 横からすみません。。。
 以前私も同じような質問をして下記の過去ログにて
 INAさんにコード教えていただき、大変重宝しております。
 ご参考ください。

 [[20040204171945]]『オブジェクトの選択』(AKI)

 (オーパフメ)


 オーパフメさんの書いて下さったリンク先のトピックは
 長いので、目的のところだけ書いておきます。

 1.ALT+F11キーで、VBEを起動
 2.プロジェクトウィンドウのSheet1 を ダブルクリック
 3.中央の真っ白なウィンドウ(コードウィンドウ)に以下のコードをコピペ

 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Target.Address <> Range("A1").Address Then Exit Sub

    Cancel = True

    If Target.Value = "レ" Then
        Target.Value = ""
    Else
        Target.Value = "レ"
    End If
 End Sub

  (INA)


私も横からですいません。
私はケンさんの言われてる方法 フォームを利用してチェックボックスを使っています。 この方法でよかったら、手順は下記の通りです。

表示メニューのツールバーからフォームを選択。
フォームのチェックボックスをクリックし チェックボックスを入れたいセル(長方形)上の線の中央ぐらいに+のポイントを合せクリックします。
セルの中にテキストボックスが入ります。 
テキストボックスの中の□なチェックボックスの左側にある××チェックの文字を消します。(文字の前にカーソルを入れDeleteキーを使ってみてください。)
位置の微調整はテキストボックスがまだ出ている状態でAltキーを押しながら移動させます。
位置が決まったら テキストボックス以外のところをクリックします。 
チェックボックスが入ったセルを選択して作りたいセルにコピー貼り付けします。  できたチェックボックス□をクリックするとチェックマークが入ります。
 (ふなふな)


 >・セルの中には入らないのでしょうか?
 ひょっとして、フォームのチェックボックスの
 コントロールの書式設定の
 3-D表示?かな??
 仕事中に、ぱっと見て
 >セルにチェクマークをつける イコール コメントと解釈してしまったぁ。。。
(● ̄▽ ̄●;)ゞぽりぽり
(夏目雅子似)


 シート上にチェックボックス(に限らず各種コントロール)を
 たくさん配置すると、不具合が発生しやすいので
 セルをチェックボックス代わりにした方が安定します。

  (INA)

  私も最初チェックボックスを使って200個以上作ってしまった為、
 データ量はとんでもないものになるし、INAさんに安定しないですよ。
 と言われるしで、たくさんチェックマークつけた場合や、セル内に
 収めるのを考えるとINAさんのコードとてもいいですよ。
 (オーパフメ:元AKI)


(INA)さんのやりかたで入れると”A1”のセルはチェックマークがダブルクリックで入るのですが、他のセルも同様にしたい場合どのように入力すればよいのか教えてください。
(ひでぼー)

 懐かしいスレが上がってきてますね。
VBAを少し勉強して頂く必要が有ります。
INAさんのコードの
If Target.Address <> Range("A1").Address Then Exit Sub
この部分で以下のコードを実行するか否を判定しています。
ここの部分をひでぼーさんの仕様に合わせるだけです。
[[20050508095758]] 『追加セルをクリックするとそのセルに"■"を表示』(ととろ)
を参考にしてみて下さい。
(kenbou)


やったー
出来ました!ありがとうございます。
実は会社の業務日報で、業務種の入力が面倒で夜中疲れた頭でカチカチ入力しているのが何とかならないかとやっていたのですが、 エクセル学校にお願いして大正解でした。
これで退社時間が5分は縮まります。毎日のことなので大きな進歩です。
(ひでぼー)


すみません。過去に解決済みの内容なのですが、統合したセルを選択するときはどうなりますか??
ご教授ください (フクロウ)


 「結合したセル」ではないのでしょうか?
「統合」は メニューデータ>統合 がありますので別の機能となります。
 
「結合したセル」と仮定して。
結合セルでは左端上端セルへの編集が有効となります。
Target.Cells(1)で左端上端セルを取得する例。
 
 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Target.Cells(1).Address <> Range("A1").Address Then Exit Sub
    Cancel = True
    If Target.Cells(1).Value = "レ" Then
        Target.Cells(1).Value = ""
    Else
        Target.Cells(1).Value = "レ"
    End If
 End Sub
 
(みやほりん)(-_∂)b

 あほなのを作ってみました。
 ※PCの環境によるかもしれません。
 右クリックでチェックマークが入ります。
 シートモジュールに記述します。

 Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
  Cancel = True
   With Target
    .Font.Name = "Wingdings 2"
    .FormulaR1C1 = "P"
    End With
 End Sub
 (MARBIN)

以前、質問した『ひでぼー』です。
みなさんのおかげで、快適なエクセルシートを活用していますが、1つのシートのそれぞれ別別のセルに、ある範囲のセルには△、他の範囲のセルには○をダブルクリックで入力するには、どのようにしたらよいのでしょうか?

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

 Dim flag As Object
 Const adr As String = "o13:o32"

 Set flag = Application.Intersect(Target, Range(adr))
 If flag Is Nothing Then Exit Sub

 Cancel = True
 If Target.Value = "△" Then
    Target.Value = Clear
 Else
    Target.Value = "△"
 End If
 End Sub

 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
 Dim flag As Object
 Const adr As String = "b13:e32"

 Set flag = Application.Intersect(Target, Range(adr))
 If flag Is Nothing Then Exit Sub

 Cancel = True
 If Target.Value = "○" Then
    Target.Value = Clear
 Else
    Target.Value = "○"
 End If
 End Sub

と上記を入力したら、コンパイルエラーが出てしまいました。


 同じイベントを二つは並べられないのでは?
 > Target.Value = Clear
 はエラーになりませんか?
 (ROUGE)
'----
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim rng As Range, rng_1 As Range, rng_2 As Range
Set rng_1 = Range("O13:O32")
Set rng_2 = Range("B13:E32")
Set rng = Intersect(Target, rng_1)
If Not rng Is Nothing Then
    Cancel = True
    If Target.Value = "△" Then
        Target.Value = Empty
    Else
        Target.Value = "△"
    End If
Else
    Set rng = Intersect(Target, rng_2)
    If Not rng Is Nothing Then
        Cancel = True
        If Target.Value = "○" Then
            Target.Value = Empty
        Else
            Target.Value = "○"
        End If
    End If
End If
End Sub

ありがとうございました。助かりました。これで又1つ賢くなりました。
ひでぼー

コメント返信:

[ 一覧(最新更新順) ]


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