Excelについて質問です。


今、1・2・3・4・・・と、列に、いろいろと記載があるのですが、

これを、それぞれを1列ずつ空けて、

B1のセルに書いてある内容を、A2に、
B2のセルに書いてある内容を、A4に、
B3のセルに書いてある内容を、A6に、

・・・と言った感じで、一気に書き直したいです。

こういったことはそもそも出来ますでしょうか?

出来るならば、方法を教えていただけませんでしょうか?

よろしくお願い致します。

回答の条件
  • 1人5回まで
  • 登録:2009/03/17 13:30:45
  • 終了:2009/03/24 13:35:02

回答(5件)

id:SALINGER No.1

SALINGER回答回数3454ベストアンサー獲得回数9692009/03/17 14:30:20

ポイント20pt

B列に書いてある値を1行(列ではなくて)ずつ空けてA列に表示するのでしたら、VBAを使って

Sub test()
    Dim lastRow As Long
    Dim i As Long
    lastRow = Cells(Rows.Count, 2).End(xlUp).Row
    
    For i = 1 To lastRow
        Cells(i * 2, 1).Value = Cells(i, 2).Value
    Next
End Sub

VBAとははなんぞやという場合は、

http://www.officepro.jp/excelvba/ini/index1.html

http://www.officepro.jp/excelvba/ini/index2.html

http://www.officepro.jp/excelvba/ini/index3.html

id:net525

ありがとうございます。

VBAですね。

参考になります。

2009/03/17 15:07:29
id:kenz-firespeed No.2

Kenz回答回数104ベストアンサー獲得回数32009/03/17 14:31:42

ポイント20pt

いろいろ方法はありますが、私は手っ取り早く

テキストエディタにコピー貼り付けして、タブをタブX2に変換した後Excelに戻します。

id:net525

それはそうなんですけど、列が多すぎるもので(汗)

2009/03/17 15:07:55
id:Gay_Yahng No.3

Gay_Yahng回答回数724ベストアンサー獲得回数262009/03/17 14:35:01

ポイント20pt

1行ずつ空けて表示 でいいですか?

 

A1に

=IF(MOD(ROW(),2)=0,INDEX(B:B,ROW()/2),"")

これをA2以降にコピー。

これでいかがでしょう?

id:net525

このやり方ですと、すでに、列がギッシリ埋まっている場合には難しい気がするのですが。

2009/03/17 15:08:21
id:nasi-goreng No.4

nasi-goreng回答回数38ベストアンサー獲得回数22009/03/17 15:29:48

ポイント20pt

どこの列がぎっしり詰まっている状態でしょうか?

B列,C列,D列,E列,F列・・・にデータがあるということですか?

 

それとも

A列にデータがすでに入っていて、偶数行はB列の値、奇数行はA列のデータを消さないでA列のままということでしょうか?

id:net525

「B列,C列,D列,E列,F列・・・・にデータがある」ということです。

2009/03/17 15:54:26
id:SALINGER No.5

SALINGER回答回数3454ベストアンサー獲得回数9692009/03/17 15:36:46

ポイント20pt

列が多すぎるというところから想像して、ただB列を1行空けてA列にコピーではないようですね。

全ての列を直前に1列追加して、1個おきにコピーにしました。

Sub test()
    Dim lastRow As Long
    Dim lastCol As Long
    Dim i As Long
    Dim j As Long
    lastCol = Cells(1, Columns.Count).End(xlToLeft).Column
    
    For j = lastCol To 1 Step -1
        lastRow = Cells(Rows.Count, j).End(xlUp).Row
        Columns(j).Insert shift:=xlToRight

        For i = 1 To lastRow
            Cells(i * 2, j).Value = Cells(i, j + 1).Value
        Next
    Next
End Sub
id:net525

追加のご回答ありがとうございます!

2009/03/17 15:55:08

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません