ここから本文です

教えてください。 数十個のシートがあり、全てのシートのB5:D20を選択して、D...

アバター

ID非公開さん

2017/11/1022:12:05

教えてください。

数十個のシートがあり、全てのシートのB5:D20を選択して、D5から昇順で並び替えをしていますが、
現状は手作業を何十回も繰り返しています。

これをマクロで一括でできますか?

閲覧数:
32
回答数:
3
お礼:
25枚

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

taihenda3356さん

2017/11/1023:04:01

数十個のシートがあり、全てのシートのB5:D20を選択して

まではわかるが

B5:D20を選択して、D5から昇順で並び替え

の意味が??

D列をキーに並び替え、という意味なんでしょうね。「全てのシート」がブックにあるすべてのシートという意味で、B5:D20に見出しを含む(こういう細かいところが重要)なら


Sub test()
Dim i As Long
For i = 1 To Sheets.Count
Sheets(i).Range("B5:D20").Sort key1:=Sheets(i).Range("D6"), Header:=xlYes
Next
End Sub


これだけのコードですが・・

  • アバター

    質問者

    ID非公開さん

    2017/11/1320:44:22

    お返事遅くなりました。

    無事にできました。

    ありがとうございます。

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

ベストアンサー以外の回答

1〜2件/2件中

並び替え:回答日時の
新しい順
|古い順

プロフィール画像

カテゴリマスター

2017/11/1022:47:47

5行目が項目名の場合のコーディング例です。
未実行につき不具合ご容赦。

Sub sample()
Dim sh As Worksheet
For Each sh In Worksheets
With sh.Range("B5:D20")
.Sort Key1:=.Columns(3), Order1:=xlAscending, Header:=xlYes
End With
Next sh
End Sub

5行目もデータの場合なら、以下の変更


.Sort Key1:=.Columns(3), Order1:=xlAscending, Header:=xlYes



.Sort Key1:=.Columns(3), Order1:=xlAscending, Header:=xlNo

a_headfishさん

2017/11/1022:30:33

>これをマクロで一括でできますか?
「マクロの記録」で記録すれば、変化を付けることは出来ませんが、毎回同じ処理を出来ますよ。

・繰り返し処理
・面倒な処理
はマクロで一括処理させるべき。

私自身、
・20分要していた転記作業がボタン一つ10秒で完了
・1時間要していたファイル加工作業がボタン一つ20秒で完了
など、日々の繰り返し作業が時短され、他の仕事に手が回せてます。
面倒だと思うことを、自分で、作業の内容を工程順にマクロ化していきましたよ。
今でも検討中の物はありますが、難航している箇所があり止まっていますけど。

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

5文字以上入力してください

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。