- 締切済み
エクセルVBA セルの抽出とコントロール
エクセルVBAについての質問です。 結論から言いますと、添付ファイルのエクセルシートで以下の処理をしたいです。 1.「有無」の列の内容を判断し、「有」となっているもののみ、 E列に表示。 2.このままだと、抽出結果の行が飛び飛びになってしまう。 たとえば、「福利厚生費」の下は「荷造運賃発送費」となるが、間に3行 空いてしまう。これをしっかりくっつける形で処理されるようにしたい。 ※データ並び替えの機能を使えばできるように思うが、そうすると50音順等になってしまうのでできない。 3.販売管理費抽出のコントロールボタンを押せば、上記の処理がなされるようにしたい。 以上です。VBAの教科書をあさってみましたが、どうも応用の仕方が分かりませんでした。 お忙しいところまことに恐れ入りますが、ご検討の程お願いします。
- みんなの回答 (2)
- 専門家の回答
関連するQ&A
- エクセルVBA 日付で抽出、並び替え
こういう場で初めて質問させていただきます。 どうぞよろしくお願いします。 エクセルVBAで日付(月毎)でデータを抽出し、並び替えを行いたいのですが, B列に日付が入りC~F列には帳簿の仕訳が入ります。 ここで B2 に日付が入って、C2~F2とC3~D3にデータが入った場合に オートフィルタをかけたら、3行目は日付の欄が空白なので うまく抽出できません。 なお、2行目と3行目は1つの仕訳なのでばらばらになるのも困ります。 仕訳は最低1行から最大で6行になります。 このように日付欄は1行だけど、その日付に対応する内容が数行に渡って入るような場合に日付から月毎にデータ抽出するには どのようなコードを書けばいいのでしょうか? A B C D E F 日付 借方科目 金額 貸方科目 金額 10/10 消耗品 300 現金 500 雑費 200 10/9 交際費 500 現金 500 10/8 雑費 200 現金 200 汚い表ですが、上記のような場合です。 10/10の分は2行で1つになりますので、このような場合です。 どうかよろしくご指導お願いします。
- 締切済み
- Visual Basic
- EXCELのVBA-フィルタ抽出後のセル選択方法
EXCELのVBAです。 オートフィルタ(Autofilter)で、何らかの条件で抽出をかけた後の部分で、 特定のセル、例えば、2列目の上から5番目のセル、を選択するには、 どうすれば良いでしょう? 言い方を変えれば、可視セルの中だけで、何列目で何行目セルという指定 をするにはどうすれば良いかと。 RangeとかSelectionで、指定する方法が有るのでしょうか? よろしくお願いいたします。
- ベストアンサー
- Visual Basic
- 《エクセル2000VBA》「コメント」を抽出することはできますか
こんにちは、VBAを勉強中の者です。 任意のシート(20000行×30列くらいでデータが入っています)に入力されているコメントのみを別シートに抽出し、一列に一覧表示させたいです。 自分でも調べてみて、とりあえずコメントは操作可能ということはわかったのですが、 ・任意のシートの中身を行と列の二次元に検索していく方法(特定の行のみ検索するコードはあちこちで見受けられるのですが) ・拾ったコメントの内容を別シートに書き込むのを「高速で」行う方法(その都度書き込んでアクティブセルを移動させる…というのならわかるのですが、データの量が膨大なので、これだと途方もない時間がかかってしまいそうです) 以上の方法がわからないでいます。 また、抽出したコメントは、配列関数を使えば処理が早いのでしょうか。 となると、書き込む件数が何件発生するかわからない場合はどうするのだろうか、と行き詰まっています。 (さらに贅沢を言いますと、コメントが入っていたセル番号が隣の列に入っているといいな、という希望もありますが、これはあくまで第二希望です) VBA勉強中ですので、パーフェクトに動くコードでなくても構いません。断片的なヒントでも大歓迎です。 VBAに詳しい方、ご教示頂けますでしょうか。
- ベストアンサー
- オフィス系ソフト
- エクセルVBAで、ある文字を含んでいたら別シートに抽出したい
エクセル2002を使っています。 シート1に A列に氏名 B列に住所 C列に電話番号 のデータが300件の表があります。 B列を検索してたとえば大阪府があれば、その行(ABC列)をシート2へコピーして抽出したいのです。 VBAを使ってやりたいのですがどうしたらよいでしょうか? よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- エクセル抽出について
初歩的な質問で大変恐縮です。 エクセルで10列×5行でひとまとまりの下に続く表があり、その中の1列目2行目に入力してある「支店」別にデータを抽出したいと思っています。オートフィルタを使うと1行づつなら抽出できるのですが、10列×5行のまとまりごと抽出する方法はありますでしょうか? つたない文章で申し訳ありませんが、ご教授ください。
- 締切済み
- その他(Windows)
- エクセル VBA でVLOOKUPにて不特定数の行の抽出を繰り返す。
エクセルVBAについて教えてください。 工場の品種ごとの使用材料の計算を作っているのですが、 各品番のリストがあり5桁の品番コードをキーにしてそれに使用されている材料を別リスト(別なシートにある)から抽出しリストを作成したいです。使用されている材料は5~10種と抽出する、列が不特定数あるのので、関数だとかっこ悪くなってしまいそうなのでVBAにチャレンジしたいのですが。可能でしょうか。 品番コード 83764→ 83764に使用されている行を5行抽出 82727→ 82727に使用されている行を8行抽出 25124→ 25124に使用されている行を11行抽出。 必ず同じ行数あるわけではないので83764に使用されている材料を5行抽出した後に空欄まで下に移動して次の82727に使用されている行を8行抽出というようにしたいのですが。 不備後不明な点あればお願いします。
- 締切済み
- Visual Basic
- エクセルでランダムに抽出後、一つのセルにまとめる方法
エクセル初心者です。 エクセルのシート1に A列の1行目~10行目にA~Jまでの文字が入力されています。 これをシート2の B列の1~100行目に シート1からランダムで抽出した3つ又は4つの文字を ACE DFG ・・・・ のように埋めるには、どのような式を入れればできるのでしょうか? 文字はだぶらないように抽出したいと思います。 文字はCAEのように、順番が逆になっても構いません。 むしろ時々逆になったりするほうが都合がよいです。 抽出される文字数も、3つだけでなく、ランダムで4つ抽出するときも あるようにしたいです。 オフィス2003を使用しています。 ご回答よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- エクセルのセルにVBAで( )付の式
エクセルのVBAで作業していますが、1つの列の全ての行を ( )付けとしたいのですが、式をお教え下さい。 例えばD列に数値AB123と入れたら(AB123)となるようにしたいのです。 現在のVBA式にはD列のカラミはありません。 単純に追加すればいいと思いますので・・・・ よろしくお願い致します。
- ベストアンサー
- オフィス系ソフト
- EXCEL VBAについて
いつも識者の皆様にはお世話になっております。 Excel VBAのことで質問させてください。 下記のようなシートがあります。 データの状態は下記です。 1. 1行目は必ずタイトル行になっています。 2. 1行目が「入荷_1」になっている列以降の日付はシリアル値となっています。 ※必ずしもG1が「入荷_1」となっているとは限りません。H1だったりI1だったりします。 VBAでやりたいことは下記です。 1. 過去取引と現在取引の状態によってA列に入力する文字列を変える。 過去取引_1=有 現在取引_1=有 の場合 「OK」 過去取引_1=有 現在取引_1=無 の場合 「NG」 過去取引_1=ブランク 現在取引_1=有 の場合 「確認要」 2. 「入荷_1」以降の列で「入荷_1」「出荷_1」など、アンダーバー以降の文字列が同じになっている2列を一まとめとして、そのどちらかもしくは両方に日付の入っているセルを探し、その列の1行目の、アンダーバーの次の文字から最後の文字までを[]で囲んだ文字列をB列に入力する。 ※_1にも_2にもある場合は、アンダーバーを使って文字列を連結する。(B2セル) ※パイナップルやぶどうのように入荷か出荷のいずれかにしか日付が入っていないものもある。 3. タイトル行が「入荷_1」となっている列以降で日付の入っている列を探し、出荷から入荷を引いた数字をC列に入力する。 ※_1にも_2にもある場合は、アンダーバーを使って文字列を連結する。(C2セル) これを2行目から1行ずつ最後の行まで行い、かつ、このシートはブックにある複数のシートの中の1つですが、BA1セルが空白ではないシートにだけこの処理をしたいのです。 どうやらSelect Caseという構文を使えばできそうだというところまで突き止めたものの、条件が僕には複雑すぎて(特に2列を1まとめにするところ)まったく進みません。 どなたか、上記内容の場合どのような構文になるのか教えていただけませんでしょうか。 よろしくお願いいたします。
- ベストアンサー
- その他MS Office製品
- Excel 複雑なセル埋めのVBA
エクセルで入力済みのデータをテーブル形式にするためにVBAを組んでいますが突き当たりました、お知恵を拝借させてください。現在成形出来ているのは以下の状態です。 A列 B列 C列 1行 AA 2 1 2行 3行 BB 3 2 4行 5行 6行 7行 8行 9行 CC 2 3 10行 11行 12行 13行 14行 これを以下のようにB列を埋めたいと考えています。A列を埋めるVBAは当方で分かります。 A列 B列 C列 1行 AA 1 1 2行 AA 2 3行 BB 1 2 4行 BB 2 5行 BB 3 6行 BB 1 7行 BB 2 8行 BB 3 9行 CC 1 3 10行 CC 2 11行 CC 1 12行 CC 2 13行 CC 1 14行 CC 2 B1に2が入っていてC1に1が入っているときはB1から下へ1,2の連番を1回入れます、B3に3と入っていてC3に2と入っているときはB3から下へ1,2,3の連番を2回繰り返します、同じようにB9以降も処理しています。連番のスタートは必ず1で、現在B列に入っている数字が連番の最後に当たる数値でC列が繰り返し回数という事です。上の例ではB列を書き直していますが、新たにD列にB列に入れたい連番の列を作る方法でもいいと思っています。 もし表が崩れていたら済みませんでした。恐れ入りますがポインタでも結構ですのでご教授下さい、よろしくお願いします。
- 締切済み
- その他(業務ソフトウェア)
お礼
すごい!!! マジ助かります。本当にありがとう^^。 感謝致します。