dポイントプレゼントキャンペーン実施中!

VBA初心者なので説明不足な点等あると思いますがご容赦ください。

ユーザーフォームにチェックボックスをいくつかつくりチェックを入れたらアクティブセルに繋げて入力できるようにしたいです。どうすればいいか教えてください。


ユーザーフォーム
☑︎りんご
◻︎れもん
☑︎ばなな

アクティブセル
りんごばなな

のような感じです。

質問者からの補足コメント

  • 回答ありがとうございます。
    例えば
    sheet1のa1のセルを選ぶ。

    ユーザーフォームでチェックをつける

    ボタンを押す

    a1のセルにチェックをつけた文字が転記される。
    複数のチェックをつけた場合にはa1のセルにチェックをつけた文字が続けて入力される。
    と言ったイメージです。

    Private Sub CommandButton1_Click()
    Dim ctrl As Control
    For Each ctrl In Controls
    If InStr(ctrl.Name, "CheckBox") <> 0 Then
    If ctrl.Value = True Then
    activecell.formulaR1C1= ctrl.Caption
    End If
    End If
    Next ctrl
    End Sub
    これだと上書きされて最後にチェックしたやつしか反映されず困っています

    No.2の回答に寄せられた補足コメントです。 補足日時:2022/12/18 11:42

A 回答 (4件)

こんな感じで。



Dim ctrl As Control
Dim tmp As String
For Each ctrl In Controls
If InStr(ctrl.Name, "CheckBox") <> 0 Then
If ctrl.Value = True Then
tmp = tmp & ctrl.Caption
End If
End If
Next ctrl
activecell.formulaR1C1= tmp
End Sub

1つもチェックが無い場合 空白になりますが、
もし、その場合は何もしない、というなら

If tmp <> "" Then
activecell.formulaR1C1= tmp
End If

未確認。間違っていたら後免。
    • good
    • 0
この回答へのお礼

助かりました

お陰様で無事思った通りのことをすることができました。本当にありがとうございます。

お礼日時:2022/12/18 12:28

こんにちは。



セルに入っている文字に、そのまま繋げて入力するという意味と思って、
下記はどうでしょうか?

activecell.formulaR1C1= ctrl.Caption

activecell.Value = activecell.Value & "," & ctrl.Caption
    • good
    • 0

アクティブセルはSheetに対し1個なので、詳細に状況を書かないと厳しいでしょうね。


選択セルなら複数行けますけど。

>アクティブセルに繋げて入力できるように

繋げるとは?
入力とはどこに?
この回答への補足あり
    • good
    • 0

1)自分がやりたいことを実現する手順を細かく書き出す。


2)手順を実現するVBAの命令を調べる。
3)調べたVBAの命令を使って、プログラムを作る。

です。
    • good
    • 0

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