【VBA】セルの選択、貼り付け方法
- VBAを使用して、大量のデータに対してセルの選択と貼り付けを行う方法を教えてください。
- A列の空白セルには、上のセルの値をコピーして貼り付けたいです。
- プログラムを作成して、セルの選択と貼り付けを自動化したいです。
- ベストアンサー
セルの選択、貼り付け
よろしくお願いします。 下記のような処理を大量データに対して行うVBAを書きたいのですが、なかなか上手くできません。 〈処理〉 A列の空白セルに対して、空白セル(例えばA2)の上のセル(A1)の値(2003)をコピーし、空白セル(A2)に貼り付ける。 次に、ひとつ下空白セル(A3)も同様に1つ上のセル(A2)の値(2003)をコピーし、空白セル(A3)に貼り付ける。 を繰り返す。 このようなプログラムを書きたいのですが。 A B C … A B C… 1 2003 1 2003 2 2 2003 3 3 2003 4 2005 ⇒ 4 2005 5 5 2005 6 6 2005 7 7 2005 8 1999 8 1999 : : : : よろしくお願いします。
- kazoo96
- お礼率50% (10/20)
- Visual Basic
- 回答数1
- ありがとう数1
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
Sub test3() Dim i As Long Dim str As String Dim tmp As String For i = 1 To 10000 tmp = Cells(i, 1) If tmp <> "" Then str = tmp Else Cells(i, 1) = str End If Next End Sub
関連するQ&A
- セルの選択、値の貼り付け
よろしくお願いします。次の処理を大量データで行うVBのプログラムが知りたいです。 [処理] A列のあるセルの値が1である場合、3つ下のセルに5を入れる。またそれ以下のセルで値が1のセルがある場合、そのセルの3つ下のセルに5を入れる。これを(A.1)から(A.6000)まで繰り返す。 (前) (後) A B C … A B C … 1 0 1 0 2 0 2 0 3 1 3 1 4 0 4 0 5 0 5 0 6 0 6 5 7 0 7 0 8 0 8 0 : :
- ベストアンサー
- Visual Basic
- セルの選択、貼り付け
よろしくお願いします。 次のような処理をするプログラムを書きたいのですが、うまく書けません。教えてください。 (処理) 1つのExcelファイルの中で、sheet1A列のセルの値と同じ値を有するセルがsheet2A列にある場合、当該行のB列の値をsheet1のセルに貼り付ける。 (前) 〈sheet1〉 〈sheet2〉 A B … A B … 1 c1 1 c1 200 2 b2 2 a1 300 3 d5 3 b3 500 : 4 b2 400 5 d5 500 : (後) 〈sheet1〉 A B … 1 c1 200 2 b2 400 3 d5 500 :
- ベストアンサー
- Visual Basic
- VBA (条件付セルの選択、貼り付け)
よろしくお願いします。 下記のような処理を大量データに対して行うVBAを書きたいのですが、なかなか上手くできません。 手順としては、 (1)空白セルを選択肢する。 (2)1つ上のセルを選択する (3)空白セルに貼り付ける。 (4)繰り返す。 だとおもうのですが、なかなか上手くVBAが書けません。 A A 12003 12003 2 22003 3 32003 42005 ⇒ 42005 5 52005 6 62005 7 72005 81999 81999 : : : : よろしくお願いします。
- 締切済み
- その他(プログラミング・開発)
- セルの移動、貼り付けの繰り返し
お世話になります。 Excel2003を使用しています。 A列からC列まで各行に必ずデーターが入っており、日付の入った各行の下に3行挿入した後、B1の値をA2へ、C1の値をA3へそれぞれ切り取って貼り付け、その下の行は空白にしたく、今現在手作業で行っています。VBAで一括で処理したく、データーがある限り同じように繰り返したいのですがやりかたがわかりません。初心者なので自分で考えたコードも記述していなく、丸投げですみませんが、どなたかご教授していただけませんか?よろしくお願いします。 A B C 1 3月1日 大阪 日帰り 2 3月2日 東京 出張 3 3月3日 名古屋 日帰り 4 ・・ ・・ ・・ 下図のようにしたいのですが。 A B C 1 3月1日 2 大阪 3 日帰り 4 空白 5 3月2日 6 東京 7 出張 8 空白 9 ・・
- ベストアンサー
- その他MS Office製品
- 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でセル選択
エクセル2000でリストを作成し、VBAで編集しようとしています。 A列に入力されているコードの先頭に「’」をつけて文字列とするための関数をB2のセルからA列のデータが入力されている最後のセルの隣までコピーしたいと思っています。 A列の最終セルを取得するVBAは分かったのですが、その値をB列の選択範囲として使用する方法がわかりません。 エクセルVBAは全くの初心者です。 どなたか教えてください!
- ベストアンサー
- オフィス系ソフト
- セルの結合
VBAの勉強を始めたばかりの初心者です。 A1、A5 A9・・・・A25までのセルに、それぞれデータが入っていて、データが入っている各セルの下にはデータが入っていない空白の三行を作っています。隣のB列にもデーターはありません。 それをA1からB4、A5からB8・・・A25からB29までのセルを、手作業で結合をしているのですが、今後データが増えていくのでどうしてもVBAで行いたいのです。 ネットで調べてもありそうでなかなかないのでどなたか教えていただければ助かります。 わかりにくい説明ですが宜しくお願いします。 A列 B列 1 ああ 空白 2 空白 空白 3 空白 空白 4 空白 空白 5 ああ 空白 6 空白 空白 7 空白 空白 8 空白 空白 9 ああ 空白 ・ ・
- ベストアンサー
- その他MS Office製品
- セルの内容を合わせるエクセル関数
お世話になります。 エクセルの関数にて、下記条件を満たす関数が作れないので 分かる方がいましたら教えてください。 A列には文字列が、B列には空白か1の数字がランダムに(1番上の行は必ず空白セル)入力されています。 これに対して、B列に空白から1が続いているセルまでをひとくくりとして、 右側のセルに表示させたいです。 画像では C2セル=A2 C3セル=IF(B3=1,C2&A3,A3)としてC4セル以降にコピペ D2セル=IF(B2="",C2,"")としてD3セル以降にコピペしていますが、 C列でひとくくりになるセルが下へ行ってしまい、 希望する結果に表示されないです。 関数が組める方がいましたらご伝授頂けますでしょうか。
- ベストアンサー
- Excel(エクセル)
- エクセルVBAで関数が入った空白セルの取得
エクセルVBAで下記のようなセルの参照をしたいのですが、よろしくお願いします。(エクセル2002です) A B C D E F 1 78 80 セル(A1)(B1)には値も関数も入れられています。 セル(C1)(D1)(E1)には値は入っていませんが、ワークシート関数が組み込まれており空白となっています。(関数の""にて空白) セル(F1)には何も入力されていません。 今回はセル(B1)の80の値を取得できるようにVBAで下記のようにコードを組みました。 Range("F1").End(elToLeft).Activate そうすると、セル(E1)に関数があるために(?)(E1)がアクティブな状態となります。 関数が入力されていても空白として(B1)をアクティブな状態にするために良い方法はありますでしょうか? 誠に申し訳ございませんが、よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- エクセルで空白のセルを探して貼り付け
エクセルVBAでSheet2の指定のセルをコピーして、 Sheet1にある表の中の指定の列の空白セルを探して貼り付けるVBAを作成したいのですが、うまく出来ません。 Sheet1の表は1行目、2行目は見出しの項目が並んでいます。 3行目から50行目までは値を入力するようになっていて、 51行目はそれらをの集計が表示されるようになっています。 下記のVBAを作成したら3行目~50行目までの空欄に貼り付けず、 52行目に貼り付けてしまいます。 ----------------------------------------------------------- Sheets("Sheet2").Range("B6").CurrentRegion.Copy Sheets("Sheet1").Cells(Rows.Count, "B").End(xlUp).Offset(1).PasteSpecial xlPasteValues Application.CutCopyMode = False ------------------------------------------------------------ 修正して頂けないでしょうか? 宜しくお願いします。
- ベストアンサー
- オフィス系ソフト
お礼
ありがとうございます。おかげさまで解決できました。