- ベストアンサー
VBS Do~loop内の抜き出し条件について
- VBSのDo~loopを使用して行単位でデータを読み込みながら、特定の条件に合致するデータを抜き出し、列ごとに出力する方法について教えてください。
- 具体的には、特定の文字列がヒットした場合にそのデータを出力する方法や、連続した特定の文字列が続いた場合にそれぞれの列に出力する方法について知りたいです。
- 例えば、条件が「111」の場合に列1に、「222」の場合に列2に、「333」の場合に列3に出力し、もしも再度「333」が出てきた場合には列4に、「444」が出てきた場合には列5に出力したいです。
- みんなの回答 (3)
- 専門家の回答
関連するQ&A
- 2重のDo~Loopは?
Excel VBAですが、A列にデータが入っています。 A列のデータが変わるまで 処理1 を実行し、変われば 処理2 を実行する。データがなくなれば終了する方法が分りません。宜しくお願いします。 i = 2 Do Until Cells(i, 1) = "" Do Until Cells(i, 1) <> Cells(i - 1, 1) 処理1 Loop 処理2 Loop
- ベストアンサー
- Visual Basic
- VBS ある条件で,空き行を埋め込む。
空き行の埋め込みに関して、質問させて頂きます。 Do~loopにて行読込み S111~S555の入力レコードを読込み、S111~S555を 繰返し順に出力させています。 ただし、入力レコードはS111~S555が順に並んでいる のですが、いずれかに空きがあります。 他、S111が有る場合はそのまま、S111を入れ込み S111が無い場合はS111の行は必要有りません。 +++入力 S111 xxxxx S222 xxxxx S444 xxxxx S222 xxxxx S333 xxxxx +++出力 S111 xxxxx S222 xxxxx S333 "空白" S444 xxxxx S555 "空白" S222 xxxxx S333 xxxxx S444 "空白" S555 "空白" このような出力結果をもとめるには、どのような 処理を行えばよいのか、どなたかヒント、参考と なる助言をお願い出来ませんでしょうか。
- ベストアンサー
- その他(プログラミング・開発)
- Do..Loopステートメントの使い方について
現在、入門書を画面で確認しながら ExcelVBAの勉強をしています。 Do...Loopで躓いてしまいました。 Do...Loopステートメントの種類は 条件を満たすまでループするもの Do Until...Loop(ループの前で条件判断) Do...Loop Until(ループの後で条件判断) 条件を満たす間はループするもの Do While...Loop(ループの前で条件判断) Do...Loop While(ループの後で条件判断) とあって、 例えば、A1からA7まで文字が入力されていて 空白のセルになるまで太文字にするとしたら、 ループの前に条件判断していると A1が空白だと処理はされず ループの後で条件判断すると A1が空白でも処理はされる とありました。 とすると、 条件判断はループ後にした方が良いと言う事なのでしょうか。 (空白でも処理してくれるので) 自分が処理したいものが ループ「後」にするのか又は ループ「前」にするのか どのように判断すれば良いのかと言うことと、 また、 条件を満たすUntil(まで)とWhile(間) どちらを使用すれば良いのかの判断方法もわかりません。 超初心者の質問内容で申し訳ありません。 VBAって面白いなぁと思い始めたところで なんとか理解したいので 教えていただけると大変助かります。 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- LOOPやFor文で出来ないでしょうか。
いつもお世話になっております。 現在帳票出力のコーディングをしております。 帳票は8レコードで一枚で、 8レコード以下になると、罫線が印刷されないため、 ブランクのデータを作ることで対応しようと思っています。 そこでブランクを入れる処理についてなのですが、 データ件数が8の倍数まで処理をつづけたいのですが どのように記述すればいいか思案に苦しんでおります。 Do Until KANRI_TANA_KENSU = 8 Or 16 Or 24 Or 32 Or 40 Or 48 Or 56 Or 64 Or 72 RS_BLANK.AddNew RS_BLANK!区分 = "BLANK" RS_BLANK.Update Loop とりあえず、一つのグループに30件以上はないので数値を固定化させたのですが 勿論これではダメだというのは理解しているのですが。。。 イメージとしては 件数カウントしている数値を8で割り、その答えが 8の倍数でない場合は小数点が出ると思います。 要するに、整数というか小数点が出なくなるまで加算させるという条件が できればいいのかなと思っているのですが それをコーディングにするにはどうすれば。。。と思っている次第です。 他の方法でも結構ですので何か案が御座いましたら ご教示いただけませんでしょうか。
- ベストアンサー
- Visual Basic
- VBSの勉強中です
VBSの勉強中のためにうまく質問できないかもしれません。 ある関数を作成して「Do while 条件」にてループ処理をしています。 条件は特定の文字列が入力されたら実行するようにしています。 ここで別の文字列が来たらループの処理を終了させたいのですが、 具体的にはどのようにしたらよいのでしょうか? イメージとしては「ON」するとループ処理が始まり、「OFF」にすると処理が止まる というようなイメージです。 どなたか方法をご教授いただければと思います。
- ベストアンサー
- その他(プログラミング・開発)
- 「DO LOOP」についての質問です。VBA初心者です。
「DO LOOP」についての質問です。VBA初心者です。 昨日同じ質問をさせていただきましたが、私の質問がきちんと書かれていなかったせいで 皆様にご迷惑をおかけしてしまいましたm(_ _;)m きちんと伝わるように訂正して再度質問させていただいてます。 『入力画面』というシートに日付を入力してマクロ実行すると 『入力画面』の右隣りにその日付名のシートが新しく作られるように設定しています。 入力する日は不定期で連続した日付ではありません。 それでお聞きしたいのは、新しく作成するシートのB列に複数の名前を入力した後、 その名前をキーに右隣のシートから一つずつ検索していって、一致するものがあれば 同じ行のN列とP列の値を新しいシートのK列とM列に取得しループ終了。 もしくは全てのシートを検索しても一致するものがなければゼロ表示でループ終了。 という作業をしたいんですが、構文がどのように作ればいいのかがわかりません。 お手数ですが、どうかご教授願います。
- ベストアンサー
- オフィス系ソフト
- Excel VBA Sheet2で指定した条件でSheet1の行削除
Sheetが2つあるExcelブックがあります。 Sheet2で検索条件(列とキーワード)を指定し、 この条件でSheet1を検索、 Sheet1で検索にヒットした行を行削除したいと考えています。 汎用性を高める為、Sheet2で指定する検索条件は可変とし、 検索対象とする列とキーワードは任意のものを必ず指定(""は無し)。 列&キーワードをひとつの検索条件として、 Sheet2の2行目~最終行までLoopしたいのです。 InStrを使用するなど、部分的には分かるのですが、 2つの条件を同時に変えながらLoopさせる方法が 色々試してみましたが、どうしても分かりません。 VBAに詳しい方、同様の処理をしたことがある方、 どうか助けてください!宜しく御願い致します。 [Sheet1] ・・・ 元データ A B C ---------------------------- 1 あ ---------------------------- 2 い 該当 ---------------------------- 3 う 閉鎖 ---------------------------- 4 え 該当 ---------------------------- 5 お ---------------------------- [Sheet2] ・・・ 行削除する範囲とキーワードを指定。 A B ---------------------------- 1 列 キーワード ---------------------------- 2 A あ ---------------------------- 3 B 該当 ---------------------------- 4 C 閉鎖 ---------------------------- [求めている結果] 1, 2, 3, 4行目が削除される
- ベストアンサー
- Visual Basic
- FileMaker Loop 処理に関して
現在、FileMaker10で二重loop処理を行いたいと思って スクリプトを作成してみました(画像添付しております、テストデータです) 2つめのloopで「次の」「最後まできたら終了」にしております。 「最後まできたら終了」のチェックを外すと無限ループしてしまいます。 「最後まできたら終了」で2つ目のloop処理が終了するのではなく スクリプト自体が終了してしまい困ってます(悩) 自分がしたい事は1行目のデータとそれ以降のデータ(注文コード&取引コード0 で同じデータが存在した場合、フィールド設定で「ダブリ1」「ダブリ2」を 記載したいと思っております。 1行目を見終わった際に、今度は次の行とその後のデータを再度比較して また調べるという形です。 技術不足でお恥ずかしいですが、どなたか教えて頂けると幸いです。 よろしくお願いします(添付画像参考願います)
- ベストアンサー
- その他(ソフトウェア)
- 差分出力及び差分出力について
プログラム初心者です。教えてください。 vbscriptで2パターンプログラムを書きたいです。 ・1つはテーブルから差分データをcsv形式で出力 既に出力済のレコードは出力しない。 ・もう1つはあるファイルを読み込み、テーブルに追加する 既に取り込み済のレコードについては取り込まないようにする。 基本的な質問ですが、テーブルから出力やテーブルへの取り込みについては、 テーブルにフラグの列を作って、レコードのそのフラグの列が 1の場合は出力済、もしくは取り込み済 0の場合は未出力、もしくは未取り込み と判断させるようなプログラムを書き、該当するレコードだけ 出力もしくは取り込みという処理を書けばいいのでしょうか? 何か参考になる例があれば教えていただけないでしょうか。 よろしくお願いします。
- ベストアンサー
- Microsoft ASP
- エクセル VBA Loop & Delete
最近マクロの勉強を始めたばかりの初心者で、どうしても Loop 処理の構文が理解出来ません。 S列 T列 U列 0 0 0 10 5 8 0 4 0 ・ ・ ・ ・ ・ ・ 上記のようにS列(3行目)からU列(最終行変動)に0~20000位の値が入っていて、データの並び替えでS列(昇順)で並べ替えをした後、S列の値が0の場合のみS~T列をDelete Shift:=xlUP したいです。 もしくはS列が0の場合のみT列まで選択 Range("S3:U...") とし、S列が0の行をまとめて Delete Shift:=xlUp したいです。 並べ替えまでマクロすぐ出来たのですが、Loop For Next など構文が理解できません。 どなたかお知恵をお貸し下さい。
- 締切済み
- Windows Vista
お礼
答えまで出して頂き、有難うございます。 正直、自分ではこのような考えには到底辿り つきませんでした。 (Do~loopを2回ほど、他、ifがなんだか多すぎて 途中で訳が解からず…。) 今後、BLUEPIXYさんコードを参考に精進致します。 有難うございました。