ようこそ ゲスト さん、新規登録(無料)して気になる疑問を解決しませんか?

質問

QNo.3983147 Excelで○をクリックのみでつけたい
質問者:ckitagawa わたしの職場では給食(昼、夜)を食べたら○をつけるという表があります。これを一ヶ月後にExcelできれいにまとめ、集計するのですが・・・

約30人分の○をつけるのは非常に大変なんです!!!
そこで教えてgooで調べた結果こんないい回答を見つけました。

>>こんなマクロはいかがですか
・b列で空白のセルをクリックしたら青○を表示(手入力の○と区別)
・b列の青○を再度クリックしたら空白に戻る
・それ以外の文字、及び青色以外の○が入ったセルでは何もしない
・b列の単一セルをクリックしたときだけ動作する

まずは、そのアンケートのシートマクロに以下をペーストして動かしてみて下さい。b列以外で使用したいなら3行目のidxCOLの値を変更して下さい

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim idxcol As Long
idxcol = 2 'b列なら2,a列から始まる列の順番
With Target
If .Column = idxcol And .Rows.Count = 1 Then
If .Value = "" Then
.Value = "○"
.Font.ColorIndex = 5
Else
If .Value = "○" And .Font.ColorIndex = 5 Then
.Value = ""
End If
.Font.ColorIndex = 0
End If
End If
End With
End Sub

しかし、わたしは”列”ではなく”行”に○を入れたいのです。どうすればよいでしょうか?
さらに表示される色が青でなく黒に設定できるようならそれも教えてください。
困り度:
  • 困っています
質問投稿日時:
08/04/28 21:39
この質問に対する回答は締め切られました。

回答良回答20pt

ANo.3 #2です

ちょっと考えてみました。
同時にというのではなく 行を指定できます。
以下のマクロでは A1に 入力した数字 を読み取って
その行で クリックしたセルに丸を入れます。
ついでに ○の位置をセンターにしています。

マクロの A1の部分を そちらの表の都合のいいセルに変更してください。
また このときに このセルは 罫線でかこむとか セルに色をつけるとかして分かりやすくしておいたらどうでしょうか?

--------------------------------------
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim idxrow As Long

idxrow = Range("A1") 'この A1の部分を適宜変更してください

With Target
If .Row = idxrow And .Columns.Count = 1 Then
If .Value = "" Then
.Value = "○"
.Font.ColorIndex = 1
With Selection 'ここからは文字位置を中央にするためです
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
End With '必要なければここまでを消してください。
Else
If .Value = "○" And .Font.ColorIndex = 1 Then
.Value = ""
End If
.Font.ColorIndex = 0
End If
End If

End With
End Sub
回答者:tommy-pie83
種類:アドバイス
どんな人:一般人
自信:参考意見
回答日時:
08/04/28 23:12
この回答へのお礼試してみましたが、これはいいですね。
早速仕事で活用させていただきます。すごいですね。
ありがとうございました。

回答

ANo.2 回答しようと思ったときには
他の方が答えられていたので
ちょっとだけ 訂正というか 追加を…

Font.ColorIndex = 5
の部分の 5 を 1に書き変えれば 文字の色が黒になります。
2か所とも書き換えてください。

複数の行を同時にというのは このままでは無理だと私は思いますが…
少し時間があれば考えられるかもしれません。
回答者:tommy-pie83
種類:アドバイス
どんな人:一般人
自信:参考意見
回答日時:
08/04/28 22:45
この回答へのお礼なるほど!
ここですね。
ありがとうございました。

回答良回答10pt

ANo.1 2行目に「○」するってことでよければ
以下のソースをお試しください

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim idxrow As Long
idxrow = 2 '2行目

With Target

If .Row = idxrow And .Columns.Count = 1 Then
If .Value = "" Then
.Value = "○"
.Font.ColorIndex = 5
Else
If .Value = "○" And .Font.ColorIndex = 5 Then
.Value = ""
End If
.Font.ColorIndex = 0
End If
End If

End With
End Sub
回答者:ski1111111
種類:アドバイス
どんな人:一般人
自信:参考意見
回答日時:
08/04/28 22:03
この回答への補足2行目だけでなく、何行も同時にすることは可能ですか?
この回答へのお礼ありがとうございます。
こういう言語(何といえばよいのかわからないので、とりあえず…)はわからず、ただコピーして使わせてもらっていましたが、Excelが自分の思っているとおりに動いてくれるのをみて、ちょっとこの言語について勉強してみたくなりました。