[[20220802110930]] 『オプションボタン選択結果のテキスト1文字を転記』(ねん) ページの最後に飛ぶ

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

 

『オプションボタン選択結果のテキスト1文字を転記したい』(ねん)

4つのオプションボタンのキャプションが、1_りんご、2_みかん、3_ばなな、4_いちご、とセットされています。
これをシートへ転記する際、頭文字「1」または「2」...だけLEFTで変換できますでしょうか?
下記のコードを書いてみましたが、ダメでした?

For i = 1 To 4

          If Me.Controls("OptionButton" & i).Value = True Then
             .Cells(lastRow, 14).Value = Me.Controls("OptionButton" & Left(i, 1)).Caption

修正点を教えていただけませんでしょうか。
宜しくい願いいたします。

< 使用 Excel:Office365、使用 OS:Windows10 >


 これでダメなんですか?

 .Cells(lastRow, 14).Value = i
(tkit) 2022/08/02(火) 11:39

上記コードで「1_りんご」を選ぶと「1_りんご」と転記されます。「1」だけ転記するにはどこを変更したらよいでしょう?

(ねん) 2022/08/02(火) 16:37


 コントロールのキャプションの左端を求めたいのであれば
 Left(キャプション,1)
 つまり
 Left(Me.Controls("OptionButton" & 1)).Caption,1)
 になるのでは?

 もっとも四つのオプションボタン、一つ目が1_りんご、二つ目が2_みかん…と並んでいるのであればtkitさんの回答でいいのでは?

(ねむねむ) 2022/08/02(火) 16:55


 すまない。
 Left(Me.Controls("OptionButton" & 1).Caption,1)
 としてくれ。
(ねむねむ) 2022/08/02(火) 17:00

こういうアプローチもありますね。
    Sub 抜粋()
        Dim i As Long

        For i = 1 To 4
            If Me.Controls("OptionButton" & i).Value = True Then
                .Cells(lastRow, 14).Value = Split(Me.Controls("OptionButton" & i).Caption, "_")(0)
                Exit For
            End If
        Next
    End Sub

なお、オプションボタンは排他ですから、処理したらループから抜けたほうが良いようにおもいます。

 最大で4つまでなら、どうでもいいレベルでしょうが。

(もこな2) 2022/08/02(火) 17:21


コメント返信:

[ 一覧(最新更新順) ]


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