アプリ版:「スタンプのみでお礼する」機能のリリースについて

セルをクリックするだけで決まった規則の入力ができないでしょうか?
現在、入力規則のリストを使用して「 」(←空白)と「○」の2種類の入力を選択してしています。
これを空白のセルをクリック(選択)するだけで「○」が入力され、もう一度クリック(選択)すると空白になるような入力ができないでしょうか?
良い知恵をお持ちの方がいらっしゃいましたら是非、お願いいたします。

A 回答 (6件)

クリックだけでやってしまうと困らないですか?


普通に入力したいのに○が入る事に成らないですか?
    • good
    • 0
この回答へのお礼

確かに。ちょっと使いにくかったです。(^^;

お礼日時:2004/07/08 18:40

該当のシートでSelectionChangeイベントに処理を書けば


できます。

例としてA1が該当セルの場合の例を書きます。

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
If Target.Column = 1 And Target.Row = 1 Then
If Target.FormulaR1C1 = "○" Then
Target.FormulaR1C1 = ""
Else
Target.FormulaR1C1 = "○"
End If
End If
End Sub

イベントはメニューのシート/マクロ/Visual Basic Editorを起動して、
プロジェクトウィンドウの該当シートをダブルクリック
して出てきたウィンドウの左上のGeneralを
Worksheetに変更して右上のコンボボックスをSelectChangeにすれば表示されます。
    • good
    • 0
この回答へのお礼

ありがとうございます。
上手く行ったのですが、jindonさんのダブルクリックの入力が一番使いやすかったのでそちらを1位にしてしまいました。
本当にありがとうございます。

お礼日時:2004/07/08 18:49

VBA(シートオブジェクトのSelectionChangeイベント)を使用すれば、ご希望の要件が満たせると思います。



ただ、この方法でいくと、普通にセルを選択したい場合との切り分けにちょっと一考が必要ですね。

→ ○は指定した列のみ とか。
    • good
    • 0
この回答へのお礼

ご提案ありがとうございます。
お陰様でjindonさんが、良い案を出してくれました。
確かにセルを移動しただけで入力されるので、ちょっとコツが必要で選択だけでは使いにくかったです。
本当にありがとうございます。

お礼日時:2004/07/08 18:38

#3さんの仰るとおりだと思いましたので、


ダブルクリック時に作動するということで、

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
With Target
If .Value = "○" Then
.Value = ""
Else
.Value = "○"
End If
End With
End Sub

エクセル画面より Alt+F11 でVBEを起動して左側画面より該当シートのアイコンをダブルクリックして、
右側画面の空白部分にコピー+ペーストして下さい。

この回答への補足

ありがとうございます。皆さんのを試したのですが、一番jindonさんのものが、使いやすく便利でした。(^^)
ところで、この動作を行う、セルの範囲を決めるにはどのようにしたらよいのでしょうか?

補足日時:2004/07/05 18:54
    • good
    • 0

リストボックスとClickイベント利用。


(1)リストボックスを(例えば)Sheet1上に1つはりつける(コントロールツールボックスから)。
(2)リストボックス(エディトモードで)内で、マウスの右クリック。
(3)プロパテイをクリック。
(4)ListFillRangeの行に例えば
G1:G6といれる。プロパティボックスをXで脱出。
項目選択肢5+空白1の場合。
(5)シートのG1:G6に例えば
東京
大阪
名古屋
福岡
札幌
(空白)
を入力する。
(6)リストボックス(エディトモードで)内で、マウスでダブルクリック。
(7)VBE画面になり
Private Sub ListBox1_Click()

End Sub
と出るから、中間の行に下記コード1行をいれる。結果
Private Sub ListBox1_Click()
ActiveCell = ListBox1.List(ListBox1.ListIndex)
End Sub
(8)デザインモードを脱する。
(9)Sheet1に戻り、
値をセットしたいセルをクリックしておいて、リストボックスのどれかを選択してクリックすると、その値がセットされる。
(10)消したい時は、消したいデータが入っているセルをクリックして、リストボックスの6番目の空白をクリックすると、消したいデータが入っているセルは空白になります。
    • good
    • 0
この回答へのお礼

私の書き方が悪かったでしょうか、ちょっと内容が違っていまして、たった2種類の選択なので、いちいち(1)セルをクリック(2)ドロップダウンを開く(3)選択するという作業が面倒なので、1クリックで○と空白が入力できないかなと思ったわけです。
でも、他に使えそうなので感謝です。ありがとうございます。

お礼日時:2004/07/08 18:47

jindonです



>この動作を行う、セルの範囲を決めるにはどのようにしたらよいのでしょうか?

Target.Row で行を指定
Target.Column で列を指定します。

例:全てコード中の With Target のすぐ下に..

1. 絶対位置を指定する(A1を想定)
If .Row=1 And .Column=1 Then....

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

2. 列を指定(A列を想定)
If .Column=1 then....

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
With Target
If .Column=1 Then
If .Value = "○" Then
.Value = ""
Else
.Value = "○"
End If
End If
End With
End Sub

3. 指定した列以外(A列を想定)
If .Column<>1 then....

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
With Target
If .Column<>1 Then
If .Value = "○" Then
.Value = ""
Else
.Value = "○"
End If
End If
End With
End Sub

And と Or を使用して範囲を指定できます。
    • good
    • 0
この回答へのお礼

ありがとうございます。お陰様で大変良い物が出来ました。(^^)
使用する人が大変気に入っておりました。
本当にありがとうございます。

お礼日時:2004/07/08 18:34

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!