• ベストアンサー

エクセルマクロで並び替えを行いたい。

エクセルマクロで以下の並び替えを行いたいのですが、可能でしょうか。 「I列~O列」データ「A列~G列」の下に並ぶようにし、 かつ、複数シートも同様に処理したいと思います。 【元データ】 「A列~G列」 「I列~O列」 ※行数はシートによる異なる。 ※シート数もファイルごとに異なる。 【並び替え後】 「A列~G列」 「I列~O列」 よろしくお願いします。

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

  • ベストアンサー
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.1

H列は完全に空白の状態にしてあるとします。また、A列からG列およびI列からO列の間の列には完全に空白状態のセルはないものとします。その上で「開発」タブの「マクロ」をクリックします。 マクロ名の窓には例えば「並び替え」と入力します。 右側の「作成」ボタンをクリックします。 表示の画面では次のマクロを入力します。 Sub 並び替え() Dim n, m As Long Range("A1").Activate n = ActiveCell.CurrentRegion.Rows.Count Range("I1").Activate m = ActiveCell.CurrentRegion.Rows.Count Range(Cells(1, "I"), Cells(m, "O")).Select Selection.Copy Cells(n + 1, "A").Select ActiveSheet.Paste Application.CutCopyMode = False Range("A1").Select End Sub マクロの実行はお望みのシートを選択して画面に表示させた上で「開発」タブの「マクロ」から「並べ替え」で「実行」をクリックすればよいでしょう。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Excel2007 マクロで並び替えをしたい

    エクセルシートに、A列から順に 部-課-担当-氏名コード-氏名-年齢 というデータが入っています。 部・担当にはデータが入っていますが、課は空白の方も居ます。 このデータを、こちらが決めた規則によって並び替えるマクロを作りたいと思っています。 (1)まず、A部⇒B部⇒C部⇒D部の順で並べる (2)次に、E課⇒F課⇒G課⇒H課の順で並べる (3)さらに、I担当⇒J担当⇒K担当⇒L担当⇒M担当の順で並べる (4)最後に、特定の人物の氏名コード(数字)を指定して並び替える。O⇒P⇒Q⇒R(管理者を各担当の一番上に持ってきたい為) 要するに、(1)⇒(2)⇒(3)⇒(4)の優先度で、ユーザー設定リストによる並び替えを行いたいです。 初めは「マクロの記録」を利用しようと思ったのですが、 ・並び替えを行うシートの列の並びが毎回同じではない ・見出し行の名称も微妙に違う場合がある ・データの数(行数)が毎回違う よって、できれば毎回並び替えを行う列を、部分一致による検索で指定できればと思います。 (例:見出しは必ず1行目にあるものとし、部分一致検索で「部」が該当したセルの列を優先度(1)として並び替える。以降同じように課⇒担当⇒氏名コード順で検索を行い、並び替える) その際考えられる問題点として、「課」が空白になっている場合、並び替えが思い通りにならないという事です。(確か空白行は一番最後になりますよね。) よって、まずは「課」の列にある空白セルに何らかの文字・・例えば-等を入力する必要があると思います。 以上の事をマクロで行えるでしょうか? マクロ初心者なのですが、職場にマクロを使える方がいない為どこから手をつけていいか悩んでいます。 こういう方法使ったらいいんじゃない?とか大体でもいいので教えていただければ幸いですm(_ _)m

  • エクセルマクロ(VBA):並び替え

    エクセルマクロの並び替えをしたいのですが、その際、並び替えのキーになる列を指定しなければなりません。 となると、毎回基準が変動している場合は思い通りにいかなくなります。たとえば、1月はG列までのデータ、でも2月はH列までのデータで、毎回一番右のデータを基準にして降順にする場合など。 この例の操作をしようとして止まってしまいました。 だれかこのマクロをご存知の方はいらっしゃいませんか。いろいろ試行錯誤してはみたものの、やはり出来そうにありません。 どうかご教授願います。 よろしくお願いします。

  • excelでの行列データの並び替え

    excelで表形式のデータの並び替えをおこないたいのですがいい方法が思いつきません。 どなたか教えて下さい。 具体的には 元のデータは以下の様なフォーマット a b c d e f g h i これを並び替えて a b c d e f g h i としたいということです。 元データの列数は決まっていますが 行数は任意です。

  • Excelのマクロを教えてください。

    Excelのマクロを教えてください。 Sheet1 F列(商品) F2テレビ、F3DVD、F4携帯電話、サプライ、、、F32まで商品あり。 I列~N列の1段目(人*増える場合あり) I1佐藤、J1高橋、K1田中、L1中村、、、 I2~N32まで、1、2、3と個数が入力されています。 A列~E列とG列とH列は今回の処理に不要なデータがいます。 これをSheet2に A列に人、B列に商品、C列に数 例) A1 佐藤、B1 テレビ、C1 1 A2 佐藤、B2 DVD 、C2 3 A3 高橋、B3 携帯電話、C3 2 のように、書き出すマクロを教えていただけませんか? 別にマクロでなくても、Excel2007までの機能でできることであればそれでもいいです。 丸投げして申し訳ありません。

  • 下記エクセル列の並び替えマクロで、Callの際に変数が引き継がれません

    下記エクセル列の並び替えマクロで、Callの際に変数が引き継がれません。 何か方法はありませんでしょうか。 Sub 各学校() Dim i As Integer Worksheets("Sheet1").Activate For 元列 = 1 To 16 If Cells(1, i) = "学校" Then 新1列 = 元列 ElseIf Cells(1, i) = "住所" Then 新2列 = 元列 ElseIf Cells(1, i) = "電話" Then 新3列 = 元列 (略) End If Next Call 列の並び替え End Sub Sub 列の並び替え() Worksheets("Sheet2").Activate Cells.Clear Worksheets("Sheet1").Columns(新1列).Cut Worksheets("Sheet2").Columns("A").Insert Worksheets("Sheet1").Columns(新2列).Cut Worksheets("Sheet2").Columns("B").Insert Worksheets("Sheet1").Columns(新3列).Cut Worksheets("Sheet2").Columns("C").Insert (略) End Sub

  • エクセルのマクロについて質問です。

    エクセルのマクロについて質問です。 複数のsheet(毎回数が変わります)があり、集計シートにデータを貼り付けたいのですが 複数Sheetのデータを集計シートの1行に貼り付けます 複数Sheet1 J1→集計Sheet A2 複数Sheet2 J1→集計Sheet A3 複数Sheetが毎回数が違うので、どうのようにマクロを組んだらよいのでしょうか。 以上、よろしくお願いいたします。

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

    エクセルのデータ処理で困っています。 A列とB列に8000行記入されており、A列とB列の内容をA列にまとめる処理を行おうとしています。 具体的には、元のデータA1、B1、A2、B2を新たにA1、A2、A3、A4に整理する処理です。 マクロを使えば容易に処理できると思うのですが、当方エクセルに詳しくなく困っています。 お詳しい方、処理方法などをご教授していただけないでしょうか。 よろしくお願いいたします。

  • エクセルのマクロに関する質問です。

    エクセル2010使用。 以下の動作をマクロで行いたいです。 「まとめ」という名前のシートを追加。 全てのシート(シート数は毎回違い、10~18くらいあります。シート名もバラバラです。 )のC列にあるデータ(データ数も毎回違います。)をすべて抜き出して、(C列のデータだけでいいです。他の列のデータはいりません。)追加した「まとめ」というシートのA列にまとめるというマクロを組みたいです。 どなたかご教示いただけないでしょうか?

  • EXCEL 横方向の並び替えをマクロでしたいのですが

    EXCELでの列方向の並び替えについてご質問いたします。 イメージはこちらになります(※列Aは固定データです) 列A 列B 列C 列D・・・・列K 1   1     3     8 2      2  3       3               8 これを 列A 列B 列C 列D・・・・列K 1   1  3  8 2   2  3       3   8 というふうにデータを左詰めにしたいのですが、 手動でのやり方はわかりますが、件数が多いため マクロで行いたいと思い何度か試してみましたが うまくいかないためご質問いたしました。

  • エクセルVBAでの並び替えについて

    エクセルでデータの並び替えの方法が分からなくて質問します。たとえばBの列の100~999、A100~A999、B100~B999のようなデータが縦に入っているものとします。この中には150-1、150-2のようなデータも混ざってます。これをそのままエクセルで並び替えをしても100~999までは上手にできるのですがその後に150-1とかきてA100~が始まります。例えばこのデータを100~始まり149、150-1,150-2、152,153、154のように上桁から基準に並び替えを行いたいのですがいい方法はありませんか?現在はマクロを使ってVBAでSORTの引数を触ったりしたのですが上手にいきません。基本的にVBAで行っているのでVBAでお願いします。初心者なのでよろしくお願いします。