- 締切済み
ExcelのUserForm,Txtデータを列取得
Txtファイルにあるデータがコンマで区切られています。並びをAからJとします。Aの前には日付が入っています。複数のテキストファイルを持ちいります。 ExcelのUserFormを使い、テキスト(拡張子Txt)のデータを列ごと取得しようと思っております。たとえば図のようにBのチェックボックスにチェックを入れ、ExecuteButton1を押すと「-509999.9987」データと日付のみ、新しいExcelファイルにデータを入れるという方法です。 並びとしましてUserForm1の中にPage1がありその中にFrame1が入って、Checkboxがあります。 Executeボタンを押したら、下記のような流れになればいいです。 テキストオープン>新規のExcelシートを作成する>選択したタグを列で取得する>新規のExcelシートに取得したデータを詰めて張り付ける(その時日付とデータを張り付ける)。 たとえばチックボックス1と4にチェックが入っていたとします。コンマの間と間のデータを取得しようとすると、1列目のデータは日付なので、2列目と5列目を取得したいと思いますがうまくいきません。 チェックボックスの1番目にレ点があると下記のようになります。 If Me.Controls("CheckBox1").Value = True Then If Me.Controls("CheckBox2").Value = True Then If Me.Controls("CheckBox3").Value = True Then して行くと、200以上のチェックボックスがある場合それを200以上作らないといけません。 また、下記のようにすると。 ....................... For i = 1 To 200 If Me.Controls("CheckBox" & i).Value = True Then ~~~~~~~~~ else ~~~~~~~~~ next i .......................... たとえば1と4列目が正(True)の場合であっても、テキストの中身のデータを的確に2列目と5列目を取得するのが難しいです。 どなたか簡単にできる方法を教えていただけますでしょうか。どうぞよろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- HohoPapa
- ベストアンサー率65% (455/693)
置かれた状況と期待が読み取れません。 1.テキストファイルの列数 前半の説明では >並びをAからJとします。Aの前には日付が入っています。 との説明から、11列と読み取れる一方で、 >200以上のチェックボックスがある場合 との説明から、200超の列数があるように読み取れます。 2.処理したいテキストファイルの数 >複数のテキストファイルを持ちいります。 これは、 処理したいテキストファイルが多数あるので 特定の列たちを抽出する作業を手作業ではなく、 マクロを使い、省力化したい。 ということですね? それとも、 1度に複数ファイルを開いて そのファイルたちから特定の列たちを 1つのファイルに抽出したいんでしょうか? 3.提示されたチェックボックス群 Dの次がFに見えます。 テキストファイルの列の数、並びと チェックボックスの数、並びが対応していないということですか? 4.どこで躓いているか? >また、下記のようにすると。 >For i = 1 To 200 > If Me.Controls("CheckBox" & i).Value = True Then > else > next i >たとえば1と4列目が正(True)の場合であっても、 >テキストの中身のデータを的確に2列目と5列目を取得するのが難しいです。 ↑のどこで躓いているのか意味不明です。 単にチェックボックスの番号に1を加えれば済むように読み取れます。 5.チェックボックスの可否 >200以上のチェックボックスがある場合それを200以上作らないといけません。 お話の通り、チェックボックスは、現実的ではないと思います。 ずいぶん前になりますが https://okwave.jp/qa/q9434577/a26318951.html 私は、こんなコメントをしています。
- mt2015
- ベストアンサー率49% (258/524)
カンマ区切りのテキスト=CSVです。 そのままExcelで開いて不要な列を削除すれば良いのでは? ただ、そのアプリを使う側の立場に立つと、200個もあるチェックボックスにチェックを付けるのは嫌ですね。