• ベストアンサー

Excel VBAで列を行に変換するには

不特定多数の行数(百列以上)と列数(千列以上)を持ったデータを以下にある結果1を結果2のように列と行を置換したいのですがどうしたらよろしいでしょうか? もしよろしければ、プログラムを教えていただけたら助かります。 よろしくお願いします。 ///////////結果1//////////////////// A1 B1 C1 →不特定の列数 A2 B2 C2 A3 B3 C3 ↓ 不特定の行数 ///////////結果2/////////////////// A2 A2 A3 B1 B2 B3 C1 C2 C3

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

  • ベストアンサー
回答No.1

プログラムを使わなくても「範囲のコピー」「形式を選択して貼り付け」で、[行列を入れ替える]チェックをOnというのがありますが。

yousukei
質問者

お礼

お返事ありがとうございます。すいませんが今回はVBAで自動でやるのが目的ですので、プログラムで書きたいと思っています。

その他の回答 (1)

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.2

マクロの記録でできると思いますが、コメント付きコードは以下のとおり。 Ctrl+Endで、不特定であっても行・列共に最大値(最終)セルを選択できます。 Ctrl+Shift+Endで、最大値(最終)セル「まで」を選択できます。 現在のデータがSheet1にあるとして、行列置換後のデータをSheet2に置くとします。 'コピー元を選択する Sheets("Sheet1").Select Range("A1").Select Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select 'クリップボードへコピーする Selection.Copy 'コピー先を選択する Sheets("Sheet2").Select 'クリップボードからコピー(ペースト)する   ’Transpose:=Trueがミソ。形式を選択して貼り付けの行列入れ替え Selection.PasteSpecial Paste:=xlAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=True

yousukei
質問者

お礼

お返事ありがとうございます。’Transpose:=Trueですね! 確かにこれなら、1セルずつを置き換えさすプログラムよりも短かく、短時間の処理でできますね。 参考になります。

関連するQ&A

  • エクセル2003のVBAを教えて

    エクセル2003のVBAを教えてください。 次の対象データで、(1)(2)(3)の作業が出来るエクセルVBAを教えて下さい。 (1)(2)(3)個々のVBAでお願いします。 ●対象データ:種類(A列)、文字(B列)、    データの行数:不特定なので、データのある最終行までとします。 ●教えていただきたい項目  (1):種類だけを(C列)に取り出す。  (2):種類の先頭に空白の行を3行入れて、追加の2行目の種類(A列)に文字(B列)を入れる。  (3):種類が5行以上あるときは、5行ごとに空白行を追加する。 ●対象データ 種類(A列)   文字(B列) AA       あああ BB       いいい BB       いい BB       いいい CC       うう CC       うう DD       ええええ DD       ええええ DD       ええええ DD       ええええ DD       ええええ DD       ええええ DD       ええええ ●(1)のVBAの結果(このようになるVBAを教えてください。) (C列) AA BB CC DD ●(2)、(3)のVBAの結果(このようになるVBAを教えてください。) 種類(A列)    文字(B列) あああ AA        あああ いいい BB        いいい BB        いいい BB        いいい うう CC        うう CC        うう ええええ DD        ええええ DD        ええええ DD        ええええ DD        ええええ DD        ええええ DD        ええええ DD        ええええ

  • エクセルで行数の異なる2つの列の数値を新しい列にコピーする方法

    はじめまして。 エクセルで質問があります。 A列に数値データ、B列に0 or 1のデータがあります。 Sum(B:B)=A列の行数です。 このデータを、C列に1のときはA列のデータを1行下にコピー、0のときは""にしたいと考えております。 結果C列はB列を同じ行数 if文でC1セルに =if(B1=1,A1,"") と打つと、B列に0が入った途端、A列の数値が進みすぎてしまいます。 B列=0のときA列を進まなくする方法はあるのでしょうか? たとえばB1=1, B2=0, B3=1のとき、C3にはA2の数値を入れたいのですが、A3になってしまいます。 よろしくお願いいたします。

  • Excel 2007で6万5536行以上のデータ

    Excel 2007では、最大列数が従来の256列から1万6384列に,最大行数が従来の6万5536行から104万8576行に増えたと聞きました。私のExcelは、2007ですが、最大行数は6万5536行のままです。 どうしたら、6万5536行以上のデータを扱えるようになるのでしょうか? 何らかの設定変更で可能になるのでしょうか?

  • Excel(2000)で行毎にセルをみて、値を返す

    例えば、以下のようなデータがあったとして、各行毎に左から見た結果、最初にデータがあったセルの列の1行のセルの値を各行のG列に返したい。 ______A__B__C__D__E__F__G__ 1行_ア__イ__ウ__エ__オ__カ____ 2行_1__3__5__2__4__1__ア__ 3行_____2__5__1__5__4__イ__ 4行_____________2__8__2__エ__ 5行_____2______2__1__4__イ__ 6行_________5______2______ウ__ G列に結果。 例えば、G3のセルに何らかの関数を入れて、A3~F3を左から見た結果、B3に2というデータがあるので、その列の1行であるB1の値、イをG3に返すといったないようです。 _ は、スペースをとるためのものです。 実際のデータは500行あり、各行の検索する列数は23列あります。 よろしくお願い致します。

  • 行と列の並べ替え

    テキストデータをエクセルに貼り付けたいのですが、列数がエクセルの上限(256列)を超えるため、256列以上のデータが切れます。 テキストデータの行と列の並べ替え+エクセルへの貼り付けを方法を教えて下さい。 テキストデータは、カンマで区切られた504個の数値が208行並んでいます。 変換前 1,3,7,4,9,・・・504個 4,4,9,2,4,・・・504個 ・ ・ ・ 208行 変換後 A B 1 1 4 2 3 4 3 7 9 4 4 2 5 9 4 宜しくお願いします。

  • 1列のデータを1行に変換し規則性のない文字列削除

    エクセル初心者です。 どなたか、助けてください。 下記のように、1列のひとつのセルに入っているデータを複数ファイルあり A :●● B :▲ C :■■ ●● ▲ ■■ といった 不要で規則性のないデータを削除して 必要な情報(これも規則性がないです) をひとつのファイルのひとつの特定のセルの中に1つづつ行に並べかえたいのです。 いろいろ調べてみて、2列のものなら、行列変換という形で、できるところまでわかって 1列 A :●● 、1 B :▲ 、1 C :■■、1 として、 A :●● ,B :▲ , C :■■ 1     、1    、1 に並べ替えられたのですが、 (1)複数のファイルをひとつにして (2)規則性のない不要なデータを削除して (3)特定のセルに入れたい のですが、 全く知識がないので、何か式を書いたり、プログラムも書いたことがないので 困っています。 どなたか、サルにでもわかるように、 ヒント、知識、お力を貸してください。 お願いします。

  • Excel VBAにてデータのある列の指定とブック間コピーについて

    初めまして。Excel VBA初心者です。よろしくお願いします。 以下の表の状態で、たとえば、B列の2行目からデータが使用されている行(以下の例では40行目ですが、ブックの内容により行数が変化します)まで、別のブックにコピーする方法があれば教えて頂きたいです。 すみませんが、よろしくお願いいたします。 A B C D E ------------------------------- 1 あ い う え お 2 い う え お か     ・     ・ ・ 40 a b c d e

  • エクセルで長い行を5行ごとに1列にするには?

    エクセルで行列の入れ替えの応用(になるのでしょうか?)をお尋ねします。 A列に例えば100行のデータが入っているのを、5行ずつ横並べにして、20行にしたい時どうすればよいでしょうか? A列 ------- データ1 データ2 データ3 データ4 データ5 データ6 データ7 データ8 データ9 データ10 (続く…) -------- こうなっているのを、  A列  B列   C列  D列   E列 ------------------------------------------ データ1 データ2 データ3 データ4 データ5 データ6 データ7 データ8 データ9 データ10 (続く…) ---------------------------------------- このように、表示したいのです。 お尋ねしているのは、100行ですが、 実は1500行ほどの長い名簿データが元のものです。 宜しくお願い致します。

  • エクセルの行と列の項目を入れ替えたいのですが

    大きな表を作成しているのですが、行(1、2、3・・)と列(A,B,C,D・・・)を入れかえる必要がでてきました。すなわち、行を現在の列である(A,B,C,D・・・)とし、列を現在の行である(1、2、3、・・・)にしたいのです。こつこつデータを打ち直すしか方法はないのでしょうか?どなたか教えてください。お願い致します。

  • エクセル 行と列の入れ替え

    エクセルで     A社  B社  C社 1月  あ   い   う 2月  え   お   か 3月  き   く   け というデータがあります。(実際は行も列ももっと多数) 行と列を入れ替えて(内容は変えずに)     1月  2月  3月 A社  あ   え   き B社  い   お   く C社  う   か   け のように作り変えるには、手動でいちいち入れ替えるほかに いい方法はありますか。

専門家に質問してみよう