• ベストアンサー

EXCELVBAでコピー・について

(例) (例)のようにあった時、暑いはA4まで寒いはA7までコピーしたいのですが、   A         データは別のデータから貼り付けしているため、時々によって空白セルの     1 暑い        幅が違います。要するにA1は「寒い」の一つ手前のセルまでコピーと認識 2            させたいのですが、どう入力すればよいか教えてください 3 4 5 寒い 6 7 8 冷たい 9 10

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

  • ベストアンサー
  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.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

successcpa
質問者

お礼

ありがとうございました。 ご記入いただいた通り入力すると思った通りになりました。

その他の回答 (1)

回答No.1

質問の意図がよく呑み込めていませんが,「空白行に対し,一つ上の内容を複写したい」という Qとしてヒントを回答しておきます。 よくやる手段としては, 1.A2のセルに「=A1」を入力しておく。 2.A2をコピー 3.貼り付けたい一連のセル範囲(例では,A1:A10)を選択しておき,   ホーム>編集>検索と選択>ジャンプ>セル選択>空白セルとし   空白のセルを選択させる 4.貼り付けする これで,空白になっているA2,3,4 A6,7 A9,10に 一つ上のセルの内容が 埋まるので,値に変換したければ,全部をコピーして「値を貼り付け」すればOK VBAにしたければ記録して加工すれば毎回異なる内容でも,最初のセル範囲の 決め方だけが,可変でできればOKでは。 まずは参考まで。 (コマンドはEXCEL2010,2003までのメニューでは編集メニュー参照) では。

successcpa
質問者

お礼

ありがとうございました。 さっそく試してみます。

関連するQ&A