- ベストアンサー
VBA 繰り返し処理について
nekotaruの回答
- nekotaru
- ベストアンサー率50% (22/44)
>A列で同じ値分ループを回し A列の最初の値は1ですが、どの行にたいしてループをまわすのでしょうか? 回す、の動きもわかりません。C列を上から下まで検索して1回でしょうか? C列の1行目まで見るのがループを回す、の意味でしょうか?
関連するQ&A
- Excel VBAによる検索処理?
Excelで以下の例のように、A列・B列に入力されているとします。A列を検索して、C列にB列の値を返す式を考えてますが、さっぱりわかりません。VBAとかも正直素人ですが、サンプルもしくは考え方を教えていただければと思います。以下の処理内容です。 ・AXセルが「B」であった場合、次のセル(A(X+1))を検索し、次が空白になるまで検索し、空白になる前の最後の行のB列の値をCXセルに返す。該当しない場合は空白のまま 下記の例ですと3行目、8行目のB列の値を2・3、6-8行目のC列のセルに返すことになります。よろしくお願いいたします。 (処理前) ___A__B__C ------------- 1 2__B__2 3__B__3 4______4 5______5 6__B__6 7__B__7 8__B__8 9______9 (処理後) ___A__B__C ------------- 1 2__B__2__3 3__B__3__3 4______4 5______5 6__B__6__8 7__B__7__8 8__B__8__8 9______9
- ベストアンサー
- その他(プログラミング・開発)
- VBAにて最大値と最大値までのデータの数を教えて
はじめまして。VBA初心者です。 誰か教えてください。 下記のようにA列にデータが並んでおります。 A列はどこまでデータがあるかは、分かりません。 その中で、 何とか独自でC列の1行目に、A列の最大値を記入する事まではできました。 しかし、A列の最大値が数字が入力されているA列の1行目から何番目にその 最大値がくるのかの計算が分かりません。 E列の1行目にその何番目にくるかをしめしたいのですが、 C列の1行目で示すように最大値の値をA列で何番目になるのかの方法を教えてください。 Rangeを使用して、Range("A1:最大値")を選択して、countするとよいのではと思い、 挑戦していましたが、"最大値"の部分をどのように表記していいかわかりません。 どなかた分かる方がいらっしゃいましたらよろしくお願いします。 A列 B列 C列 D列 E列 1行 3 最大値 10 個数 4 2行 5 3行 7 4行 10 5行 9 6行 2 … … … …
- ベストアンサー
- 数学・算数
- VBAのプログラムに関してです
VBAに関する質問です。 いま、A列に0~4の数字が順番に繰り返し記入されていて(数字の数はランダム)、B列に適当な値が記入されています。A列の中から1を探しだして(1つ上の行の数字が0)、 その行から1つ戻ったB列の値をC列に記入、A列の次の0~4の繰り返しで同じ条件の1を探してその行から2つ戻ったB列の値をD列に記入する。といったことをA列が空白の行になるまで繰り返し行うというプログラムを教えてほしいです。お願いします。 例) A:00011112233400001123334400011111122233400000- B:12345678912345678912345678912345678912345678- となってるA列のそれぞれの0~4の塊の最初の1をさがしてそれに対応するBをそぜぞれ求めていくというものです。 この場合だと実行結果C・D列には C:379 D:688 となってほしいです。
- ベストアンサー
- Visual Basic
- どうVBAを書けばいいのでしょうか
以下のような表があります。 (sheet1) A列 不規則な数列(←一行目にタイトルが書き込まれています) 13 (←二行目から数字がランダムに書き込まれています) 18 44 36 22 14 27 21 32 35 44 12 (以下続く) Case1[i行の値よりi+1行の値が大きく、i+1行の値よりi+2行目の値が大きい件数] Case2[i行の値よりi+1行の値が大きく、i+1行の値よりi+2行目の値が大きく、i+2行の値よりi+3行目の値が大きい件数] などの件数を、新たなシートに書き出したいのです。 上の例からすると、 (sheet2) A列 B列(←B列に件数を書き込む) Case1 3 Case2 1 のような感じです。 if文で作ってみたのですが、うまく処理してくれません。 どのようなVBAを書けばいいのでしょうか。 分かる方、よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- VBAで
すいません、エクセルVBAで教えてください A B C D 1 2 3 4 2 3 1 4 3 1 2 4 上記のように、AからD列に数値が入っています。 Cが1のときに、その行を削除(上の場合は、2行目)したいのですが、VBAでプログラムでどう記述すればよろしいでしょうか。 フィルタ機能は使いたくないので、IF文がいいのでしょうか。 申し訳ないですがよろしくお願いします
- ベストアンサー
- Visual Basic
- エクセルVBAでのまとめ計算
初めまして、よろしくお願いします。 データーで A B C D E ・・・ 1 5 7 2 2 3 7 0 3 4 6 3 6 5 2 8 3 6 0 3 4 ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ 100 3 4 5 という表がありますA列には(C列の値/(D列以降の平均値))をB列には(C列の値-(D列以降の平均値))を表示させたいと思います。たまに3行のような空白の行があります。関数式ではなく、VBAで解る方、よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- EXCEL VBA
はじめまして。ExcelのVBAについて質問させて頂きます。 - A-B-C 1 0 あ 2 0 い 3 1 う 4 1 え 5 1 お 上記のようなデータに対して、A列の値が1の場合、B列の値をC列へコピー して、B列をゼロにする。A列の値が0の場合は、そのまま。 (結果) - A-B-C 1 0 あ 2 0 い 3 1 0 う 4 1 0 え 5 1 0 お といったようにVBAを作成したいのですが、なにぶん初心者なもので、 どのように記述すればよいのかわかりません。 よろしくお願いいたします。
- ベストアンサー
- その他(プログラミング・開発)
- Excel VBA B列を検索して1行下をコピぺ
はじめまして。 VBAを始めたばかりですが、自分ではどうにもならないので、教えていただければと思い、初めて質問致します。 A1~G1、1行目から1000行目まで各セルに数字がランダムに1つずつ入っているデーターSheet1があり、コマンドボタンを押すことによってMsgBoxに入力した数字をB列を下に検索していき、例えば、数字の8が入力されたら、B1から下にB列に8が出現したらそのセルの1つ下の行(A列~G列まで)をコピーしてSheet2に抽出したいと考えているのですが、なかなか出来ず、困っています。 イメージとして A B C D E F G H I 1 5 14 30 25 30 3 9 2 22 34 6 7 29 49 3 3 1 8 20 4 10 6 45 4 30 15 34 50 2 5 9 5 11 8 45 7 6 20 1 6 40 8 48 25 36 4 10 7 21 22 30 28 6 7 36 8 2 3 50 2 1 43 6 と、データがSheet1に仮にあって、8が入力されたなら4行目の 30 15 34 50 2 5 9 と 6行目 40 8 48 25 36 4 10、7行目 21 22 30 28 6 7 36という様に抽出されてSheet2に 上から順に貼り付けられる様にしたいので、皆様の御知恵をお貸しいただければと 思っております。かなり複雑かとは思いますが、どうか宜しくお願いいたします。 FINDやOFFSET、IF文、ループ等を使ってみましたが私のレベルでは全く話になりませんでした。 まだVBAかけだしなもので、なるべ簡単なくプログラムでお願いいたします。
- ベストアンサー
- その他(業務ソフトウェア)
- Excel VBAでの値の比較
お世話になります。 Excel VBAでの値の比較方法についてご教授頂きたく存じます。 下記のような値がセルに入っていると仮定しまして、 セルA1とセルG1を比較する セルA2とセルG2を比較する セルB1とセルH1を比較する セルB2とセルH2を比較する 値が違う場合のみ、A列、又は、B列のセルの色を変更したいのですが・・・。 下記例の場合であれば、B1とA2がセルの色が変われば良いです。 A列 B列 G列 H列 1行 1 1 1 2 2行 2 2 3 2 VBAで実現したいと思います。 何卒、宜しくお願い申し上げます。
- ベストアンサー
- オフィス系ソフト
- ☆Excel VBAでAVERAGE関数を使うとき・・・
こんにちは。VBA初心者です。 VBAでAVERAGE関数を使いたいのですが、参照範囲を最終行まで指定したい場合、 どのようプログラムすれば良いのでしょうか? A B C 1 5000 2 2000 3 3000 4 1000 5 6000 6 : 7 : ← A列の値を平均する。 A列には膨大な行が存在すると仮定します。 VBAに詳しい方、教えてください。 どうか、よろしくお願いしますm(_ _)m
- ベストアンサー
- その他MS Office製品
補足
わかりにくい説明ですいませんでした。 補足説明させていただきます。 私の中での処理イメージ((1)~(3))は以下のように考えておりました。 (1) A列で行に値がなくなるまでループを回します。 (2) (1)でのループ処理に加えて、A列に設定されている同じ値内でネストしてループを回します。 (3) (2)でのループ処理内で、C列に設定されている値をそれぞれ取得 し、その値の中で、一番多い値を特定し色づけなどを行う。 (ANo.1さんの補足でも説明させていただきましたが、本文の”例えば”に記述してあるB列に対する記述は無視していただいて結構です。)