• ベストアンサー

データ処理の際のデータの抜粋方法

VB(excel 2003です。)で以下の動作をしたいと思っております。 1,A列からO列までの4行目、34行目、64行目、94行目・・・以下1444行目まで30行毎に抜粋 2,1行目から3行目までは元データのまま、その後は抜粋したデータを記述した新たなファイルを作成 3,そのファイルを「元のファイル名_ソート済」と名前を付けデスクトップに保存。 1-3をいっぺんに行うマクロを自力で作成してみましたが、エラーが発生し、困っています。 お忙しい中申し訳ございませんが、助力をお待ちしております。

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

  • ベストアンサー
  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.2

#1です。 想像していた物と違いますね。 B列の値をH列に代入するのですか? こんな感じかと思ったんですが、、、 Sub Test() Dim r As Range, wb As Workbook, i As Long With ThisWorkbook.ActiveSheet  Set r = .Range("A1:O3")    For i = 4 To 1444 Step 30      Set r = Union(r, .Range("A" & i).Resize(1, 15))    Next i  Set wb = Workbooks.Add(xlWBATWorksheet)  r.Copy wb.Worksheets(1).Range("A1")  wb.SaveAs Filename:=CreateObject("WScript.Shell").SpecialFolders("Desktop") & _            "\" & Left(ThisWorkbook.Name, Len(ThisWorkbook.Name) - 4) & _            "_ソート済.xls", FileFormat:=xlWorkbookNormal End With End Sub

kulala-ura
質問者

お礼

まさにこれがやりたかったことです! やってみて感動しました。 本当にありがとうございます。 迅速な対応、感謝します。 お忙しい中、ご協力いただき、ありがとうございました。

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

その他の回答 (1)

  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.1

ExcelのVBAですね? 自力で作成されたマクロを掲示してみては? 悪い所がわかるかも。

kulala-ura
質問者

補足

早速の対応ありがとうございました。 Sub Selectin_movehijikan() Dim i As Integer Dim j As Integer j = 4 For i = 4 To 1444 Step 30 j = j + 1 Cells(j, 8) = Cells(i, 2) Next End Sub で、30行毎の変換は可能なのですが、 うまくファイルの保存ができません。

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

関連するQ&A

  • excelデータの加工をマクロ等で処理する方法を教えて頂けないでしょう

    excelデータの加工をマクロ等で処理する方法を教えて頂けないでしょうか。 複数のエクセルデータのファイルがあります。 回数・距離・深さのデータが入っています。(回数は1回~10回位まであります) そのデータを加工するのですが、マクロ等で迅速に処理できる方法がないものでしょうか? マクロは実行する程度で作成した事はありません。。 加工作業は、 (1)「距離」と「深さ」の間に『間隔』という項目行を増やす。 (2)『間隔』の計算をする。(距離2回-1回・3回-2回・・のように計算します)間隔行の最終の回には“-”とおく。 (3)「回数」行の右端に『最小値』・『最大値』・『平均値』という項目列を増やす。 (4)『間隔』「深さ」の最小値・最大値・平均値を求める。(「距離」は求めないので“-”をおきます。 (5)「距離」と『間隔』行は小数点以下3桁にする。 (6)「深さ」行は小数点以下1桁にする。 (7) 罫線を引く という流れなのですが、何かいい方法がありましたら教えて頂けないでしょうか? 宜しくお願い致します。

  • Excelへのテキストデータの取り込み

    VB2005でテキストファイルを作成し、それをExcelに取り込もうとしています。 123,234,120,200 200,300,400,500 111,222,333,444 のようなファイルを作成し、これをExcelに取り込むと 3行で取り込まれます。 次に 123,234,120,200 200,300,400,500 111,222,333,444 のように文字列の行間に改行文字(chr$(13))だけの行を作成し、 これを取り込もうとすると、 2行おきに読み込まれてしまいます。 メモ帳でファイルの中身を確認すると1行おきになっているのに、 Excelのデータ→外部データの取り込みでテキストデータウィザードを見ると すでに2行おきになっているのです。 1行おきに作成した文字列ファイルを1行おきに取り込むにはどうしたらいいのでしょうか?

  • Excel:  データを各シートへ振り分ける

    Excelでsheet1からsheet nまで準備されているものとします。sheet1として(2行1列目~50行2列目)までの表があってそれを1列目を昇順でソートしたとき数個のグループに分かれるものとします。またsheet nは事前にグループの分は充分用意されているものとします。 そこでソート後、そのシートを分かれたグループ仮にAAA,CCC,DDDと分かれたときに、sheet2にはAAAのグループを2行目以下へ転送し、sheet3にはBBBのグルーを2行目以下へ転送し、そしてsheet4にはCCCのグループを2行目以下へ転送するようにマクロ記述をしたいどのように記述すればいいですか。(マクロ実行はソート後実行します)

  • Excelで1列のデータを5列に振り分けする

    Excel2003でA列に1行にあるデータ(半角英数字)を 次のシートに、1行ずつコピーして、それを5列に振り分けするというマクロを作りたいです。 (ただし、コピーは2つずつの時もあります。) 元データ ●A列 B列 C列  1  2  3  4  5  ・  ・ 加工後 ●A列 B列 C列 D列 E列   1   1   2   2   3   3   4   4   5   5   上記のような感じです。ただデータは数字のみでなくて、英数字です。 Excelのマクロは全くの初心者で大変困っています。 どうぞよろしくお願いたします。

  • 【Excel VBA】条件を満たすデータを順に抽出

    Excel2003を使用しています。 CSVでExcelに取り込んだデータの中から、条件を満たすものを順に抽出して一覧表を作成するマクロを作りたいのですが。。。 ・Sheet2のB列に“コード”と入力されている行のC列のデータ → Sheet1のC列2行目以下 ・Sheet2のC列に“合計”と入力されている行のD列のデータ → Sheet1のD列2行目以下 に順に表示させたいのですが、うまくいきません。 以前、いただいた回答で参考になりそうなものを見てみたのですが、手順というか何かヒントのようなものをいただけたら、自分でどうにかできそうなので、質問させていただきました。 よろしくお願いします。

  • 複数のエクセルファイルからのデータの抽出、一覧の作成について

    エクセルでのデータ整理の件で以下の質問があります。 以下のことができるようなマクロは組めませんでしょうか? 同一フォルダ(仮に、「C:\Sample」とします)に日々の業務データが 入力されたエクセルファイルが300個ほどあります。 各ファイル内にはSheetが5枚あり、各ファイルで入力されているデータは すべて同一のフォーマットです(Sheet毎では異なる。 例えば、Sheet1の1行A列には日付データ、Sheet2の2-5行B列には名前データ、といった感じです)。 これら300個のファイルから、これまでのデータを一覧にしたリストを 新規に作りたいと考えています(作成場所はどこでも構いません)。 例えばSheet1の、1列目にはファイル名、2列目には各ファイルSheet1の1行A列の日付データ、 3-6列目には各ファイルSheet2の2-5行B列の名前データ・・・、といった具合です。 (縦に日付が並び、1行内に各ファイルのデータが入力されている、 といった風にしたいと考えています。) 参考になりそうな過去の回答もありましたので、いくつか試してみたものの、 うまくいきませんでした(私はマクロは少しかじった程度です)。 一個ずつコピペでは非常に骨が折れ、難儀しております。 ややこしい質問ではございますが、ご回答お待ちしております。

  • 36回のソート&コピ&ぺを、1度のマクロ実行で行うには?

    初心者です。WinXP、Excel 2002を使用してます。 四苦八苦しております ブックのシート数は変動しますが、例えば、 1、37シート目(集計1)に、1行目とA列が項目で、37行(37行以下)かつ100列(100列以下)のデータ表(小数点以下の桁数1以下、空白もあり)があります。それをまず「行列を入れ替え」(私が、縦方向の方がソートしやすいと思ったため)ます。 2、次に、その1行目とA列が項目の、100行(100行以下)かつ37列(37列以下)のデータ表の、データ部分を縦方向に「昇順で並べ替え」(小数点以下の桁数1以下、空白もあり)ます。 3、うち縦方向のトップ7までだけのデータを、再度、「行列を入れ替え」て、次シートの38シート目(集計2)へ貼り付けます。元の37行(8列)のデータ表に戻ります。 ちなみに、最初(元)はソートするデータが列方向のため、縦方向でソートしたほうが良いと思いまして、2回の「行列を入れ替え」を入れました。 また、「行列を入れ替え」が2回もあるので、39シート目(集計3)のシートも追加しても構いません。 以上 36回のソート&コピー&ペースト を1回のマクロ実行で行うことができればと思っております。    どうかよろしくお願い致します。

  • エクセルのソート(行)について

    エクセルで作成した行単位のデータを、ある列の値 でソートしようとしたら、以下の様なエラー表示が でました。 「この操作には、同じサイズの結合セルが必要す。」 どの行にも同じ列を対象に結合セルがありますが、 このような場合はソートできないのでしょうか? (各行ともセルの書式は同じです。) エクセルのバージョンは、EXCEL2000 9.0.3821 SR-1 です。 ご存知でしたら教えて下さい。

  • エクセル VBA データのマッチング

     エクセルのVBで下記のプログラムの作成をしたいのですがうまくマクロが組めません。 ファイル名:TEST01.XLS ファイル名:TEST02.XLS があります。 TEST01.XLSにあるA列のデータ、TEST02.XLSにG列にあるデータが一致した場合のみ、一致した行にあるTEST01.XLSのB列にある4桁のコードを一致したTEST02.XLSのL列に表示させるプログラムを作りたいです。 すみませんが回等お願いできませんか。

  • 2つのエクセルから同じデータを持つ行を出力する方法

    エクセルで作成した二つのDBがあります。それぞれ、列・行の数は異なるのですが、同じ名称の列(例えば郵便番号)を持っています。 この二つのファイルから、同じ列に同じ情報をもった行を取りだす、ということをしたいのですが、関数やマクロでの実現できる方法がございましたら、教えて頂けないでしょうか。 例:二つの住所録のようなファイルAとファイルBがあって、郵便番号が154-0001のデータ(行)を、別のファイルCに出力する。(また、ファイルC上では、各データがファイルAとファイルBのどちらから出力されたものかも、判別が付くように出力したい) 分かりにくいケースで大変恐縮ですが、ご存じの方がおりましたら、どうぞよろしくお願いいたします。 ※エクセル2003を使用しています。