• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:データの一部範囲について、並替等のVBAを作りたい)

データの一部範囲をVBAで並べ替えたい | VBAを使ってデータを整理する方法

このQ&Aのポイント
  • VBAを使用して、データの一部範囲を並べ替える方法について詳しく教えてください。
  • VBAを使ってデータの一部範囲をまとめ、指定した順序で並べ替える方法を教えてください。
  • Windows7とOffice2013を使用している場合、VBAを作成してデータの一部範囲を処理する方法を教えてください。

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

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

こんばんは! 何度も質問文を読み返してみてのですが、 最終段階の並び替えの部分が理解できないので とりあえずE~J列の範囲指定だけのコードです。 データSheet名は「Sheet1」としています。 Sub 範囲選択() Dim c As Range, r As Range With Worksheets("Sheet1") Set c = .Range("A:A").Find(what:="11時台", LookIn:=xlValues, lookat:=xlWhole) Set r = .Range("A:A").Find(what:="13時台", LookIn:=xlValues, lookat:=xlWhole) Range(.Cells(c.Row, "E"), .Cells(r.Row - 1, "J")).Select End With End Sub ※ これで11時台~13時台の1行前までのE~J列範囲が選択されると思います。 >並べ順はE,G,H,F,I,Jのようになる とありますので これを選択されているE列以降に表示させたいのだと解釈しましたが、 これでは元データが消えてしまうので、敢えて選択だけでやめています。 もしこれを並び替えしたい場合は 別Sheetに「値」として貼り付 → 万一空白セルがある場合は削除 → 縦に並び替え という手順になるのではないかと思いますが、 とりあえずはこの程度で・・・m(_ _)m

noro6857
質問者

お礼

早速ありがとうございました。。 質問の書き方がわかりにくくてすみませんでした。 この種の質問はQ8608455にてVBAを作っていただきました。 ここで出力方法はご理解いただけますでしょうか。 それと異なるのは、前例はA列の部分がないこと、対象がデータ全体であることです。 出力方法はこれと同じのため、一定の範囲内を指定する方法がわかりこれを作業の対象にあてはめられればこれを応用できるかと思っています。 あと並び替えデータは別テキストへの書き出しになりますが、テキストへの出力ファイル名が前例では左上の第1セルを引用することになっていますが、今回は$A$1のセルの日付と新たに範囲指定する最初の時間の部分(例11時)で14062211に続けて$B$1のおいてあるタイトル文字を連結させたものにしたいと思っています。

noro6857
質問者

補足

Q8608455の並び替えVBAで、範囲指定をした場合の作業が動作できるため、教えていただいた範囲指定をしたあと並び替えVBAを実行したら指定範囲内の並び替えができました。 ただ、ここでできなかったのは、後段にあるAB列(今回はBC列)書き出しと矩形範囲(Z~AF)の書き出しが指定範囲にならないことです。 これを指定範囲に代入できると可能になりそうなのでその部分を教えていただければと思います。 それと並び替えの場合、列間の仕切りが以前はその部分にサブタイトルがあり■の入った文字列が入ることで区分できたため、今回はその行が存在しないため、わかりにくくなってしまうことです。それで列毎に仕切線でも入るようにできますでしょうか。 並び替え例 E101 E102 E103 E104 仕切り線 G101 G102 G103 G104 仕切り線 F101 F102 F103 F104 仕切り線 以下同様 なお、前例と元データフォームが異なるため指定列名は今回と一部異なっていますのでご了承ください。

関連するQ&A