dポイントプレゼントキャンペーン実施中!

シート1からシート13まで、シート1を基準に作成した表を、シート1で表の並べ替え(5行から86行)のマクロを作成し、実行(ボタン)を行う。その際、シート2~シート13も同時に表の並べ替え(5行から86行)が行われるマクロ文(基本的な文や例題などあれば・・・)を教えて頂けないでしょうか。

質問者からの補足コメント

  • 早速ご回答ありがとうございます。シート2以降の並替えがうまくいきませんでした。私の説明不足です。再度アドバイスを頂ければ幸いです。
    1)シート1にEからJ列で番号、名称、分類、工法①、工法②、内容を文で記入しK列以降で数値を入力。項目は4行目で並替えは5行から86行目です。並替えの項目の基準はG列の場合とH列の場合とJ列の場合です。A列にG列項目名をB列にH列項目名をC列にJ列項目名を各々数値番号で入力し、A列B列C列の各々に実行ボタンを設けています。D列は並替えが完了して物件数が常に1から順になるようにABC各々のマクロでKEY2で並替えするようにしています。
    2)シート2以降は工法②の分は考慮せず、AからI列までは、シート1と同じとしシート1が並替えとなると通常のエクセル式”=シート1名E5”で変更してます。シート2以降で並替えしたいのは、J列以降の5行から86行目となります。

    No.1の回答に寄せられた補足コメントです。 補足日時:2017/10/18 10:21

A 回答 (1件)

こんにちは!



>実行(ボタン)を行う
シート1にコマンドボタンを配置しているとします。

>表の並べ替え(5行から86行)
とありますので、
5行目は項目行で5行目項目はA列から最終列まで入っているという前提です。

まず↓のコードを標準モジュールにしてください。

Sub Sample1()
Dim k As Long, lastCol As Long, myRng As Range
For k = 1 To Worksheets.Count
With Worksheets(k)
lastCol = .Cells(5, Columns.Count).End(xlToLeft).Column
Set myRng = Range(.Cells(5, "A"), .Cells(86, lastCol))
myRng.Sort key1:=.Range("A5"), order1:=xlAscending, Header:=xlYes
End With
Next k
MsgBox "完了"
End Sub

次にコマンドボタンのコードを

Private Sub CommandButton1_Click()
Call Sample1
End Sub

としてみてください。

※ 全シートが対象ですので、
シート数が14以上ある場合は
>For k = 1 To Worksheets.Count

>For k = 1 To 13
にしてください。m(_ _)m
この回答への補足あり
    • good
    • 0
この回答へのお礼

ありがとうございました。
本文を参考に解決しました。

お礼日時:2017/10/20 15:46

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!