- ベストアンサー
EXCELVBAでコピー・について
(例) (例)のようにあった時、暑いはA4まで寒いはA7までコピーしたいのですが、 A データは別のデータから貼り付けしているため、時々によって空白セルの 1 暑い 幅が違います。要するにA1は「寒い」の一つ手前のセルまでコピーと認識 2 させたいのですが、どう入力すればよいか教えてください 3 4 5 寒い 6 7 8 冷たい 9 10
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
一例です。 VBAでない方法です。 (1)A1:A10を選択→ctrl+Gキー押下→セル選択→空白セルを選択→OK→数式バーに=A1と入力→ctrl+enterキー押下 (2)VBAは、上記操作をマクロ記録すればよいが、範囲を可変にしたい場合は、以下のコードの「Range("A1:A10").Select」を削除して範囲選択は手動として下さい。 マクロ記録でのコード例です。(マクロ記録終了後にalt+F11キー押下→標準モジュール→Module1に登録されています) Sub Macro1() Range("A1:A10").Select Selection.SpecialCells(xlCellTypeBlanks).Select Selection.FormulaR1C1 = "=R[-1]C" →Selection.Formula = "=A1"でも可 End Sub
その他の回答 (1)
- a_pa558523
- ベストアンサー率40% (2/5)
質問の意図がよく呑み込めていませんが,「空白行に対し,一つ上の内容を複写したい」という Qとしてヒントを回答しておきます。 よくやる手段としては, 1.A2のセルに「=A1」を入力しておく。 2.A2をコピー 3.貼り付けたい一連のセル範囲(例では,A1:A10)を選択しておき, ホーム>編集>検索と選択>ジャンプ>セル選択>空白セルとし 空白のセルを選択させる 4.貼り付けする これで,空白になっているA2,3,4 A6,7 A9,10に 一つ上のセルの内容が 埋まるので,値に変換したければ,全部をコピーして「値を貼り付け」すればOK VBAにしたければ記録して加工すれば毎回異なる内容でも,最初のセル範囲の 決め方だけが,可変でできればOKでは。 まずは参考まで。 (コマンドはEXCEL2010,2003までのメニューでは編集メニュー参照) では。
お礼
ありがとうございました。 さっそく試してみます。
お礼
ありがとうございました。 ご記入いただいた通り入力すると思った通りになりました。