- 締切済み
Excel VBAで1列に同じ値がある場合
ExcelVBAで1列に同じ値が2つ以上ある場合、他の列を取り出すようにしたいです。 下記のようなテーブルがあった場合に、 No.4の値を2行から最終行まで、確認していき、 同じ値が2行以上あった場合に、それを1行にまとめて、 No.2に小さい値を、No.3に大きい値を書き込むようにしたいです。 例) No.1 No.2 No.3 No.4 No.5 q 1 1 1 a q 2 2 1 a q 3 3 1 a VBAで下記のようなテーブルにしたいです。 No.1 No.2 No.3 No.5 q 1 3 a 当方、初心者でまだ日が浅いため、どうしても1行にまとめることができず、どなたか助けていただけますでしょうか。 回答よろしくお願いいたします。
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- kkkkkm
- ベストアンサー率65% (1633/2478)
- kkkkkm
- ベストアンサー率65% (1633/2478)
- kkkkkm
- ベストアンサー率65% (1633/2478)
- kon555
- ベストアンサー率52% (1763/3382)
- m5048172715
- ベストアンサー率16% (860/5259)
関連するQ&A
- 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 値取得について
お世話になります。 どなたかお力をお貸しください。 Excel2003 VBAでプログラムを組んでおり、エクセルのシートをデータベース代わりに利用しています。 複数のブック散乱している10万個近くのテキストボックスの値を、 「A」というブックの「シート1」のセルに格納して行きたいと思っております。 値の格納方法としては、「A」ブックの「シート1」の セルA1からA2、A3…A列最終行(6万強)まで縦の並びにデータを格納していきます。 ただし、「シート1」に格納したい値は10万個近くあるので、 A列だけでは足りなくなります。 A列の最終行まで値を格納し終えたら、自動的にB列に移動して、 セルB1からB2、B3…B列最終行(6万強)という遷移させていきたいのです。 A列のみに格納していくのであれば、理解できるのですが、 自動遷移がわかりません。 For i = 0 To 最終行(6万強) シート1.Range("A" & i) = 参照元 Next i よろしくお願いします。
- 締切済み
- Visual Basic
- Excel VBA - 数式のコピーと値貼り付け
A~Cを使った表があり、AとBには値が入力されています。 C2に"=A2+B2"と入力し、その式を、A列の最終行と同じ行までコピーし、C2からCの最終行までの範囲をコピーして同じ範囲に値貼り付けするにはどういうVBAを書けばいいでしょうか。 宜しくお願い致します。
- ベストアンサー
- オフィス系ソフト
- VBAで複数の行のナンバーを取得し、その行の列の値を参照して値を入れる
下記のことをしたいのですが、調べてもわかりません。 どなたか教えてください。 よろしくお願いします。 内容: エクセルシートのA列の値が11である行ナンバーを取得(複数ある可能性があります)する。 その行のE列(5列目)の値と他のテーブルの値を参照して所定の値をA列の値が11である行のE列(5列目)に返す。 以下のVBAを書いてみましたがうまくいきません。 ----------------------------------------------------------------- Dim ROWCOUNT As Integer Dim row_array() As Variant Dim i As Integer '全行数を取得 ROWCOUNT=Worksheets("sheet1").Range("A1",Range("A65536").End(xlUp)).Count For i = 1 To ROWCOUNT If Cells(i, 1).Value = 11 Then Cells(i,1).Offset(0,5).Value=WorksheetFunction.VLookup(Cells(i, 1).Offset(0, 5).Value, Worksheets("sheet2").Range("A1:H1786"), 3, False) End If Next I
- ベストアンサー
- その他(プログラミング・開発)
- エクセルVBAもし同じ値なら!!
エクセルVBAもし同じ値なら!! 開いているBookのFormから違うBookのSheet1のA列にDATAを入力することはできます。 例)TextBox1の値があれば次の列に入れることはできます。 悩んでいるのは (1)TextBox1と違うBookの"Sheet1”のA列が同じ値なら MsgBox "既に登録済みです。"と表示させて ElseでDATAを入力させたいです。 '使用行を格納 lngYcnt_K = SH1.UsedRange.Rows.Count For lng = 1 To lngYcnt_K 'TextBox1と同じ値を見つけてテキストボックスの値を入力。 If CStr(TextBox1.Text) = CStr(SH1.Cells(lng, 1)) Then MsgBox "既に登録済みです。" Else 最終行 = SH1.Range("a65536").End(xlUp).Row TextBox1.Text = SH1.Cells(lng, 1) TextBox2.Text = SH1.Cells(lng, 2) End If Next lng どのようにすれば良いのでしょうか?? 教えて下さい!
- ベストアンサー
- オフィス系ソフト
- エクセルVBAの初心者です。特定の値を基準とし、行に罫線をひきたいので
エクセルVBAの初心者です。特定の値を基準とし、行に罫線をひきたいのですが、上手く行きません。 チャレンジしている内容は、下記の通りです。 A B 1行目 100 X店 2行目 100 X店 3行目 101 Y店 4行目 101A Y店Z営業所 5行目 102 V店 500行程、R列まで情報が入っています。 罫線をひく条件ですが、 1)A列を基準(上記より値の数が増えていきます。例:102,102Cなど) 2)100の様に同じ値がある場合、100同士の間には罫線をひかず、 100と101の間(2と3行目)に罫線をひく 3)101と101Aは同じグループとなるが、間に2)とは異なる罫線をひく 101Aと102の間は2)と同じ罫線をひく 作業を一つずつ分割し、IFなどを使い考えましたが、できません。 そもそも、やろうとしている事がVBAではできないのか、 このVBAを組むのに私の発想の転換が必要なのか、分からなくなってきてしまいました。 アドバイス等、ご教示頂けますでしょうか? 宜しくお願い致します。
- ベストアンサー
- Visual Basic
- エクセルでの条件付きの値結合
エクセルでのリストの編集方法を教えてください。 下記のような商品リストがあります。全て文字列形式です。 A列:商品コード (例:ATR-0001)半角英数 B列:バリエーション名 (例:カラー)全角 C列:バリエーション値 (例:ブラック)全角 D列:バリエーション品番 (例:-bk)半角英数 このとき、A列の値が同じでかつ、B列の値が同じ行の場合、 C列の値をつなげた値をE列に、 D列の値をつなげた値をF列に返したいです。 A列とB列が同じ値なら、E列、F列に入る値も同一で結構です。 ただ、つなげる際は値と値を半角コロンで区切る必要があります。 同じ値が何行並ぶかどうかは一定ではなく商品ごとに異なります。 VBAでも数式でも結構です。 よろしくお願いいたします。
- ベストアンサー
- オフィス系ソフト
- VBAでセルに値が入ったときにイベントを起こしたい
VBAでタイトルのことをやりたいのですがどうやったらいいのか全く思いつきません。どなたかヒントをいただけないでしょうか? B列の10行目から2000行までの間限定で、5行ごとのセルに値を入れたときに動くようにしたいんです。 例としてB10に値が入ったらA10から下に連番をふります。(1から5) B15に値が入ったらその続きを入れたいんです(6から10) どのようにしたらいいでしょうか?
- ベストアンサー
- Visual Basic