プロが教える店舗&オフィスのセキュリティ対策術

あるTxtファイルがあります。その中にcheckbox1, checkbox2, checkbox3, ....と横にコンマで区切りながら並んでいます。それぞれの"checkbox#," の下は数値が1000個以上縦に並んでいます。
そこで、図のようなUserForm(ユーザーフォーム)よりチェックボックスを作成しました。そのチェックボックスを選んだところだけ、「checkbox#」名とその下の数値だけを新たなExcelシートに抜き出すマクロを作ろうとしていますが、なかなかうまくできません。簡単な方法があれば教えていただけないでしょうか。どうぞよろしくお願いいたします。

「Excel VBAファイル取込時での行/」の質問画像

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

  • どう思う?

    Do Until objStream.EOS
    Pull = objStream.ReadText(adReadLine)
    Dim iA As Integer
    For iA = 1 To 15
    Select Case Me.Controls("CheckBox" & iA).Value = True
    S1 = Me.Controls("CheckBox" & iA).Caption
    ??????
    Case InStr(Pull, S1) > 0
    a = a + 1
    AI = AI + 1
    Sheets("Sheet1").Rows(AI + 1, 2) = Pull
    End Select
    Next
    Loop
    objStream.Close
    Set objStream = Nothing
    まだ途中ですが今こんな感じです。 もちろんNGですねwww

      補足日時:2018/03/03 13:21

A 回答 (4件)

No.2です。



fujillinさんの回答を見て、多分シートに取り込んでから弄る方が質問者さんには楽かもですね。
SELECT CASE の使い方もまだぎこちないようですし。
    • good
    • 0

こんにちは



>あるTxtファイルがあります。
Txtとはいいながら、実態はcsvファイルってことでしょうか?
項目数がいくつあるのかわかりませんが、わざわざフォームを用いなくてもInputやあるいはどこかのセルに直接番号を入力しちゃった方が簡単そうに思えますが…

それは別として、csvをそのまま一旦別ブックに読み込んでおいて、必要な列だけコピペするとか、不要な列は削除するというような処理として考えれば、概略はマクロの記録でも作成出来るのではないでしょうか。
    • good
    • 0
この回答へのお礼

>Txtとはいいながら、実態はcsvファイルってことでしょうか?
Txtファイルです。CSVにも似てるのでここではどちらでも関係ないですね。

>それは別として、csvをそのまま一旦別ブックに読み込んでおいて、必要な列だけコピペするとか、不要な列>は削除するというような処理として考えれば、概略はマクロの記録でも作成出来るのではないでしょうか。
それはどう言うマクロにすればいいのでしょうか?

お礼日時:2018/03/06 00:28

ユーザーフォーム(?)に何故同じ名前のコントロールの値が並んでいるのかはわかりませんが。



>その中にcheckbox1, checkbox2, checkbox3, ....と横にコンマで区切りながら並んでいます。

CSVファイルにしてADODBで接続しSQL文のSELECT句で、チェックの入ったチェックボックスのCaptionを並べまくるとか?
ただCaptionとフィールド名は大・小文字を統一しておくべきだと思いますよ。
    • good
    • 0

テキストのチェックBOXの列位置が固定であれば、フォームのチェックボックスに列位置を対応させて、その列を抜き出せばよいと思います。



もし、テキストのチェックボックスが可変であればテキスト読み込みの際にフィールドをチェックして、該当のチェックボックスを抜き出せばよいと思いますが、ご質問の文章をフォームからでは具体的なマクロは書けません、すいません。
    • good
    • 0

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