• ベストアンサー

EXCELで「行と列を入れ替える」操作を何回も繰り返して自動実行する方法はないでしょうか?

EXCELシート上で、セルを範囲指定してコピー後に、コピー先のセル上で[形式を指定して貼り付け]を選択し、画面上の[行列を入れ替える]のチェックボックスに印を入れて実行すると、行と列が入れ替わった表が貼り付けられますよね。 このような操作を何千回も繰り返す必要があるのですが、今は1回ずつキーボード操作を行っているのでかなり時間がかかっています。 自動的に上記の操作が実行されるようにする方法はありませんでしょうか? ちなみに、「行と列を入れ替えたいセルはすべて同じシート(ブック)上にあります。」 例)(EXCEL上で次のように並んでいます) 【現状の並び方】 氏名1 住所1 電話1 氏名2 住所2 電話2  ・  ・ (上記のようなセルデータが数千つづく) 【上記のデータを次のように並べたいのです】 氏名1 住所1 電話1 氏名2 住所2 電話2  ・  ・ (数千つづく) 何か方法がありましたら、お教え願います。 どうぞ宜しくお願いいたします。

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

  • ベストアンサー
  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.1

関数を使ったほうが早いような気がします。 さきのがA列(A1:A99)として B1=INDEX($A$1:$A$99,(ROW()-1)*3+COLUMN()-1,1) としてD1まで列方向にコピー後、行方向にコピー 上記の数式の範囲をコピーして、別シートにでも「編集」「形式を選択して貼り付け」「値」で確定させる。

tomitarou6699
質問者

お礼

即座のご回答、本当にありがとうございます! 早速試してみます。 これでできたら凄く効率化されると思います!!

その他の回答 (1)

noname#123709
noname#123709
回答No.2

マクロを使った一例を・・・。 当然範囲等は修正する必要があります。 さっぱり分からない!というのであれば#1さんの方法の方が良いかと思い ます。 Sub test() Dim i As Long With Sheets("Sheet1") For i = 1 To 31 Step 3 .Range("A" & i & ":A" & i + 2).Copy .Range("D65536").End(xlUp).Offset(1).PasteSpecial Paste:=xlAll _ , Operation:=xlNone, SkipBlanks:=False _ , Transpose:=True Next i End With End Sub

tomitarou6699
質問者

お礼

詳細なご回答、本当にありがとうございます!! 私はマクロは全く理解できないため、せっかく式までご提示いただいたのに、どう適用してよいか現時点では良くわかりません・・。ただセルやシート名を実際のものに置き換えてやってみます。

関連するQ&A

専門家に質問してみよう