[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『シートの並べ替え』(はな)
各シートが個人名になっています。
50音順に並べ替えるにはどうすればいいのですか?
Sub シートの並べ替え() Worksheets.Add Before:=Sheets(1) Sheets(1).Name = "NEW"
Dim N As Integer, SN As Variant, I As Integer, J As Integer On Error Resume Next N = Worksheets.Count For I = 2 To N Worksheets("NEW").Select Range("A1").Select Selection.Offset(I).Value = ActiveWorkbook.Worksheets(I).Name Next I
Range("A3:A65536").Select Selection.Sort Key1:=Range("A3"), Order1:=xlAscending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _ :=xlPinYin, DataOption1:=xlSortNormal
For J = 1 To N Worksheets(1).Select Range("A2").Select SN = Selection.Offset(J).Value Sheets(SN).Move After:=Sheets(J) Next J
Worksheets("NEW").Activate Application.DisplayAlerts = False ActiveWindow.SelectedSheets.Delete Application.DisplayAlerts = True
End Sub
私は、新たなシートにシートの名前を転記する方法しか思いつきませんでした。でも、このコードだと、英語、平仮名、カタカナはOKですが、漢字でシートの名前を入力していると、うまく並びません。先生方、アドバイスお願いします。他に、シートを新規に作らないいい方法もありましたら。 (ピョン)
Sub シートの並べ替え() Worksheets.Add Before:=Sheets(1) Sheets(1).Name = "NEW"
Dim N As Integer, SN As Variant, I As Integer, J As Integer On Error Resume Next N = Worksheets.Count For I = 2 To N Worksheets(I).Select Range("A1").Select Selection.Copy Worksheets("NEW").Select Range("A1").Select ActiveCell.Offset(I).PasteSpecial Next I
Range("A3:A257").Select Selection.Sort Key1:=Range("A3"), Order1:=xlAscending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _ :=xlPinYin, DataOption1:=xlSortNormal
For J = 1 To N Worksheets(1).Select Range("A2").Select SN = Selection.Offset(J).Value Sheets(SN).Move After:=Sheets(J) Next J
Worksheets("NEW").Activate Application.DisplayAlerts = False ActiveWindow.SelectedSheets.Delete Application.DisplayAlerts = True
End Sub
まだまだ、私も質問を書き込むような未熟者です。もっといい方法があれば、アドバイスがあるはずです。 (ピョン)
> アクセスありませんね...
このページにアクセスする人 土、日 は閑散、 月、金 は少し少ない、 火、水、木 が多いのです。 (kazu)
このような英文をマクロといいます。作り方の例がありますので、 ↓体験VBAを見てください。(kazu)
https://www.excel.studio-kazu.jp/lib/e1nw/e1nw.html
> すべてのシートを選択して、第1行に行を追加してください。その後、作業グループを解除、A1のセルをクリック、シートの名前を入力してから、 > A1を選択している状態で、書式→ふりがな→表示/非表示を選んでください。これをすべてのシートに適用させます。
ここまでは分かりますか?次に、"Alt"を押しながら"F11"を押すと画面が変わります。挿入→標準モジュールを選ぶと、Module1(コード)が出ます。そこに、上の”Sub シートの並べ替え()”から”End Sub”までをコピーしてから貼り付けてください。もちろん、2つ目のほうです。次に、"Alt"を押しながら"Q"を押すとエクセル画面になります。次に、エクセルのツールバーの空白の部分(ヘルプの横かどこか)で、右クリックしてフォームを選びます。ボタンをクリックして、第1行の余白にでも貼り付けてください。マクロの登録で、シートの並べ替えを選んでOKを押します。ボタンの名前はボタン1になっていると思いますので、適当に名前を変更してください。この状態で、ボタンを押すと・・・あとはやってみてください。ただし、前処理は必ず必要ですよ。漢字コードを振り仮名に変換していますので。
あと、英文の意味ですが、これが難しいのです。私も、kazuさんをはじめ、多くの方々にアドバイスを頂いています。ちょっとずつ勉強していってください。本当に難しいですが、マクロを覚えれば、エクセルは楽しくなるでしょう。kazuさんに教えて頂いたアドレス、まずはこれから理解するのがいいと思います。 (ピョン)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.