• ベストアンサー

Excel エクセル 2003 セル内のデータ移動 マクロ?

データはE6からE297まであります。 E7のデータをD6へ、E9のデータをD8へ下に、これを最後まで行いたいのです。 ドラッグアンドドロップや切り取り、貼り付け(ショートカット)では時間がかかるので何かいい方法はありませんでしょうか?(マクロなのかな?) また、E列だけでなく他の列(任意)へ移動したときや、E17などのように任意から始まるときなど、そしてEデータが297ではなくもっと増えたときなどの対応などをあわせてお教えいただくとうれしいです。 よろしくお願いします。

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

  • ベストアンサー
  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.1

D6セルに  =IF(E7="","",E7) と入力して下方向にコピーする方法ではいけませんか? 行削除をする可能性があるなら以下の式の方が良いかもしれません。  =IF(OFFSET(D6,1,-1)="","",OFFSET(D6,1,-1)) 列の挿入や削除で列が変わっても問題なく表示できます

Tosihiko12
質問者

お礼

ありがとうございます。 E列は空白はないのでIF文は使わずに使用しました。 =OFFSET(D6,1,1) でできました。 ありがとうございました。

その他の回答 (1)

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.2

E6からE297まであるデータのうち、奇数行のデータをD列の一つ上のセルに移動させるということでしょうか? Sub test01() With ActiveSheet For i = 6 To 297 If i Mod 2 <> 0 Then .Cells(i - 1, "D") = .Cells(i, "E") .Cells(i, "E").ClearContents End If Next End With End Sub

Tosihiko12
質問者

お礼

>E6からE297まであるデータのうち、奇数行のデータをD列の一つ上のセルに移動させるということでしょうか? そうです。 マクロではこう組むのですね。 使ってみたいと思います。 ありがとうございました。

関連するQ&A

  • EXCELでセルの移動マクロを作りたいのですが…

    EXCELについての質問です。マクロを使ってセルの移動をさせたいと考えています。 まず使うデータ範囲はA1:E11です。A1:E10にはデータが入っています。 ちなみに、A列には名前、B~E列には数字が入っており、A11:E11は合計が表示される設定しており、合計の場所はここに固定させたいのです。 その移動のさせ方ですが、 A1:E1に空欄があるとします。 そのときに、マクロを再生させるとA2:E10のセルに入っているデータ(値のみ)を上に移動させたいのです。 さらに、A3:E3の内容を消して空欄が出来たとします。 その時に同じ操作によってA4:E10のデータを上に移動させたいのです。 前者のマクロを単純に作ると縦に9つ分のセルを移動させるマクロでは、 A11:E11も上に移動させられてしまいます。なので、移動させるセルの一番下が10行目になるようなマクロを作りたいのです。 何がしたいのかといいますと、いらないデータを消した時に空欄をマクロで詰めてしまいたいのです。 乱文で判りづらいかと思いますが、知識のある方教えていただけないでしょうか。 よろしくお願い致します。

  • エクセルのマクロの登録について

    エクセルのマクロ登録についてご質問です。 エクセルでマクロを登録したいのですが、 D7~D49まで自動で数式が反映するようにしてあります。 マクロのボタンを作成し、そのボタンを押すとコピーを選択した状態になるようにしてあります。 これが、すぐよこのE列~AH列まで日付が並んでおり、D7~D49に反映させたデータを 対応する日付の下に毎日値貼り付けをしている常態です。     D      E     F     G   自動反映   9/1   9/2   9/3 7   ~ 49 ボタンひとつでコピーした状態ではなく、その対応した日付の下に値貼り付けすることはできますでしょうか。 これがシート1、シート2、シート3、シート4まで あるのですが、ボタンひとつで登録するようにできますでしょうか。 どなたかご回答よろしくお願い致します。

  • セル移動マクロを教えて下さい。

    エクセルで最終行の次の行(新規入力となる行)の左4つ目のセルに移動するマクロを作りたいのですが、出来るでしょうか。 例えば列Aに1から3000までのNOが入っているとします。 B列からD列までは他のデータに使用しているため新規入力データE列の行から右に入力しています。 NO125の行までデータ入力している場合、ボタンをクリックすれば、A列のNO126(新規入力行のA列)にセルが移動するマクロです。 よろしく、お願いいたします。

  • エクセルのシート上でセルのデータの移動

    エクセルのA列のA1,A2,A3...には選手人名 が入っています。 例えばA2(田中選手)の相手となる選手名(山本 選手)をA19列から持ってきてB2にセットしたいのです。 ドラッグアンドドロップ的にB列にA列から移動したい のです。左上中白矢印ポインターを出して移動できる のは判りますが、左上中白矢印を出すのが確実に 行かないことがあるので、中白十字状態でドラッグアンド ドロップ出きるか、A19をクリックし後にB2をクリック するとA19の内容がB2に移るようにするには、VBAを どう組めば良いのでしょうか。教えて下さい。

  • エクセル マクロでセルを自動移動

    例1のようになっているエクセル表があります。 データは右方向、下方向へ増えます。 Cの列以降は4つ単位でしかデータは増えません。 それを例2の表のように列A,Bのデータはそのままに Cの列以降の4つのセルを区切りに下の行に移動して、 空白の列まで言ったらA2の行以降を最後の行まで繰り返しするという マクロを書くことは可能でしょうか。 出来ましたらそのマクロを教えてください。 例1 A1 B1 C1 D1 E1 F1 G1 H1 I1 J1 K1 L1 M1 N1 A2 B2 C2 D2 E2 F2 G2 H2 I2 J2 A3 B3 C3 D3 E3 F3 G3 H3 I3 J3 K3 L3 M3 N3 例2 A1 B1 C1 D1 E1 F1 A1 B1 G1 H1 I1 J1 A1 B1 K1 L1 M1 N1 A2 B2 C2 D2 E2 F2 A2 B2 G2 H2 I2 J2 A3 B3 C3 D3 E3 F3 A3 B3 G3 H3 I3 J3 A3 B3 K3 L3 M3 N3

  • 特定のデータに対応させてセルを移動させるには?

    次のような表で、あるデータに対応するように、別のデータを移動させるにはどうしたらいいでしょうか。 A列  B列   C列   D列 001  A社    001    1 002  B社    003    2 003  C社    004    3   004  D社    005    4 005  E社    007    5 上の表のA、B列が元のデータで、C、D列が整理したいデータです。 A列の順番に基づいて、C、D列を移動させたいと考えています。 作業後のイメージは下のようになります。 A列  B列   C列   D列 001  A社    001    1 002  B社     003  C社    003    2   004  D社    004    3 005  E社    005    4  このように、A列の数値と同じ数値のC列を同じように選び出し、 C列の移動と一緒にD列を移動させたいです。 ご回答宜しくお願い致します。 もし質問文に不十分な点がございましたら、捕捉致します。

  • Excelでセルの移動をするとコピーされてしまう

    Excel2007を使用しています。 セルのデータをドラックアンドドロップで移動すると移動元にデータが残ったままになってしまいます。 切り取りで移動しても移動元にデータが残ったままになってしまいます。 複数セルデータを移動する際に境目が分からなくなり困っています。 過去ログ等、探しましたが解決できず、質問させていただきます。 なにか設定などがあるのでしょうか?

  • 現在値と時系列データをマクロで作りたい

    エクセル2010をウインドウズ7にて使用しています。 グラフを作る元データを形成するために自分なりにマクロ式を作ってみましたが、 うまくいかず困っています。 そこで、以下の内容を満たすマクロ式をぜひ例示していただけないでしょうか。 当方マクロには疎いため、エクセルにコピペすれば動作する式を例示いただければ大変助かります。 1.実現したいこと ○刻々と変化する数字データを一定時間ごとの時系列に固定化・記録したい ○現在の時間帯に相当するセルにはリアルタイムデータを表示する 2.説明 添付の画像をもとに説明します B列には、他のワークシートから参照したリアルタイムデータが入っています。 (「=別のシート!A2」という感じです) なおB列にある各行は、それぞれ別のセルから引用した個別のデータです。 それらのデータを、C列以降に30分ごとの区切りで記録していくとともに、 現在時間にあたる列(たとえば10:15であればE列)には、 「=B2」のように現在のリアルタイムデータを表示させたいのです。 つまり、現在データは現在の時間帯のセルに表示させつつ、 一定時間ごとで区切った過去の時系列データも記録したいということです。 その時系列データ・現在データをもとにグラフを作成することを考えています。 (具体的には、「スパークライン」の作成) 自分でマクロを作成してみたときの流れは以下のような感じです 09:00直前の処理 1.C2に「=B2」を入力 2.C2を下へドラッグし、C3以下にB2同様に=B3、=B4・・と連続データを作成 09:30の処理 1.C2以下のデータをコピーし、C列に「値として貼り付け」を行うことで終値を固定データ化する 2.D2に「=B2」を入力 3.D2を下へドラッグし、D3以下にD2同様に=B3、=B4・・と連続データを作成 10:00の処理 1.D2以下のデータをコピーし、D列に「値として貼り付け」を行うことで終値を固定データ化する 2.E2に「=B2」を入力 3.E2を下へドラッグし、E3以下にE2同様に=B3、=B4・・と連続データを作成 同様の処理を30分ごとにO列まで繰り返す 以上です。 できれば一つのマクロで完結するような計算式だとありがたいです。 わかりにくい点がありましたらご指摘ください。 よろしくお願いいたします。

  • エクセル2010 マクロでデータ移動

    エクセル2010を使っています。 一人では解けない問題が出てきましたので、詳しいかた教えて頂けませんでしょうか? 画像の様なデータがあり、A列にデータがあります。 そのA列の 【日付】 の文字の下セルの文字を B列にリンクのまま抜き出します。 抜き出し元のセルの下のセルから 【メモ】を含むセルの、1行上のセルまでをD列に上から順に抜き出します。 最後に 【メモ】を含むセルをE列に抜き出し、枠線を与えます。 ちなみに、画像の様に途中ランダムに文字が入りますが、抜き出したい部分は必ず 【日付】 と 【メモ】の間にあります。 ただ1点気になるのは、A23セルの様に、【メモ】の文字が二つある行がある点です。 詳しい方、よろしくお願い致します。

  • エクセルのマクロでクリップボードの使い分け。

    マクロ初心者です。任意のシートの任意の列(先に選択しておきます。)とそのシートのA列を特定のシートの2列に並べてコピーしたいのですが、クリップボードを使ってマクロ記録をしても、実行すると貼り付けの段階でエラーが起こります。クリップボードの中身を一つ目のデータ、二つ目のデータというように、選択して貼り付けすることは無理なのでしょうか。あるいは、一つ目のデータをコピー・貼り付けした後、元の任意のシートに戻る方法はないでしょうか。どなたか教えてください。よろしくお願いします。Excel2000を使っています。

専門家に質問してみよう