• ベストアンサー

空白のセルに隣の1段したの値を抜き出して入れる

VBA初心者です たとえば添付の様な形のA,Bが空白になっているデータが300行位 続いている場合B列の空白にA行の1段下の値を抜き出したいときにどういうVBAが書けるか分かる方ご教授願います。(B7にはxx、B14にはYY、B19にはHHなどの用に)。

質問者が選んだベストアンサー

  • ベストアンサー
  • mar00
  • ベストアンサー率36% (158/430)
回答No.1

300行位なら Sub Macro1() For i = 2 To Cells(Rows.Count, "B").End(xlUp).Row If Range("A" & i).Value = "" And Range("B" & i).Value = "" Then Range("B" & i) = Range("B" & i).Offset(1, -1).Value End If Next i End Sub でも動作は重くないと思いますが。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • A列にある文字データで△△を含むセルの値をB列に□□にして置き換えしたい

    A列に文字データが100行まであります。    A           B    1 ミカンを食べた     ZZ 2 イチゴを食べた     XX 3 西瓜を食べた      YY 4 ミカンを捨てた     ZZ 5 西瓜を拾った      YY 6 ミカンを無くした    ZZ 7 西瓜を貰った      YY 8 イチゴをあげた     XX それを表のようにB列(任意の列)に置き換えたいです。 イチゴを含むセルはB列にXXをミカンはZZみたいな感じです。 A列のセルには同じ文字列は(今のところ)含みません。 文字の一部を置き換えて変換し、それを繰り返すところまではできましたが、上記のことがができません。 VBAを使って一発で変換したいのですが教えていただけますでしょうか?

  • 空白セルに自動で値を入れたい

    どなたかご教授賜りたく・・・。 エクセルの表(具体的にはピボットテーブルをコピーして値を貼り付けた)で、列ごとで値と空欄のセルが混在しています。 基本的に空白はその列の直近の上の値が入ります。 1行空欄ならそのすぐ上の値、2行空欄があってもやはり上の直近の値が入ります。 例)    A 1 ○○○   2 3 ○△○ 4  5     ↓    A 1 ○○○   2 ○○○ 3 ○△○ 4 ○△○ 5 ○△○ という風にしたいのです。 現在、オートフィルタで空白だけをソートして、Ctrl+Dをひたすら押し続けて上の値をコピーしていますが、数百行もあれば手の指が疲労して硬直してしまいます。 関数を使って自動で入れる方法はありませんでしょうか?

  • ExcelVBAで数式の空白を返さないようにするに

    例えば、A1~A10にある値があり、B1~B10に条件があえば上から順に参照される表があるとします。(もし条件の合う値が3つあれば、B1~B3にA列の値を表示します。あわない場合は("")で空白を返します。) この場合、VBAでB列の空白を省いた最終行を取得したいのですが、 = Range("B1").End(xlDown).Row でやると、空白でも数式が入っていたら返してしまうので困っています。 何か良い方法はないでしょうか。

  • Exceで入力した値を段を変えて並べて塗りつぶす

    添付図のように、A1に入力した値分B1から塗りつぶす 段が変わって、A2に入力した値分、1段目の塗りつぶされた次の行から塗りつぶすといったデータを作りたいのですが どうすればよろしいでしょうか? 初心者なので簡単な事かもしれませんが教えてください

  • エクセル2003マクロvba名前の定義

    excelエクセル2003のvbaの質問です yy列の最下行をxxとします yy列の名前の定義を馬とします zz列の名前の定義を肉とします 列番号・行番号を用いず、肉2行目から肉xx行目までオートフィル するマクロの構文を教えてください xxの値は変動するのでxxの値を取得する形にしてください dimとか使わず1行で収まる構文でお願いします

  • Excelで空白セルをつめて表示させたい

    お世話になります。 Excelの操作について教えてください。     A列  B列 1行  3 2行       2 3行  5 4行  4    1      ↓     A列  B列 1行  3    2 2行  5    1 3行  4 4行 と、空白でないのセルだけを、上に詰めて別のシートに表示させたいです。 出来れば関数を使って行いたいです。 いくつか同じような質問があったのですが、なかなかうまくいきません。 どなたか、ご教授下さい。

  • EXCELで式での空白セルの挿入方法

    A列は空白行で、B列は数値が入っていたり空白だったりする行で構成されています。 またC列からD列までの全ての行には数値が入っています。 この時A列に条件付き数式を入力して、B列が空白でなければB列に空白セルを挿入して現B列からD列を右にシフトさせたいのですが、数式で可能でしょうか? 数式で可能ならばA列に入力する式を、不可能なら参考のためVBAでの記述をお教え頂けると嬉しいです。(VBAはあまり理解しておりませんが。) 例 【処理前】 A列 B列 C列 D列 E列     22   33  44          55  66     77   88  99         100  101 【処理後】 A列 B列 C列 D列 E列 式       22  33  44 式       55  66 式       77  88  99 式      100  101 2万行の処理を1回のみしたいです。 宜しくお願いします。

  • VBAでセルに値が入ったときにイベントを起こしたい

    VBAでタイトルのことをやりたいのですがどうやったらいいのか全く思いつきません。どなたかヒントをいただけないでしょうか? B列の10行目から2000行までの間限定で、5行ごとのセルに値を入れたときに動くようにしたいんです。 例としてB10に値が入ったらA10から下に連番をふります。(1から5) B15に値が入ったらその続きを入れたいんです(6から10) どのようにしたらいいでしょうか?

  • 【エクセル】歯抜けの空白欄に上段と同じ値を入れたい

    エクセル(2010)で ある表に ところどころ空欄があり、 そこに上段と同じ値を入れたいです。 随時発生する作業のため マクロ(もしくはVBA)が組めればと考えておりますが、 初心者につき、ご教示いただけますでしょうか。 A列:項番 B列:大項目 C列:中項目 D列:小項目 E列:備考 ※1行目:項目名、2行目以降:値 という表で、 A列のナンバリング・D列の小項目 以外は 上と同じ扱いとなるため空欄となってしまっていますが、 アクセス(DB)に取り込むため、空欄の無い形にしたいのです。 ※ちなみに、A列・D列は空欄が無い状態=最終行以下は空白です。 よろしくお願い致します。

  • 空白のセルのカウントについて

    インターネット等で色々検索したのですが、うまく回答が導き出せなかったのでこちらで質問させていただきます。 添付したような表があるとき、B列にある空白のセルを都道府県別にカウントするにはどのようにしたら良いか教えてください。 例には都道府県を使用しましたが、実際には1000行を超えるデータとなりA列には同じ値が入力されます。 結果として 北海道:1 愛知:2 東京:2 福岡:0 というような答え導き出す方法を教えてください。 よろしくお願いします。

専門家に質問してみよう