- ベストアンサー
Excel2007 マクロを使って他ブックに対して並び替えを行いたい
- Excel2007を使用して他のブックに対して並び替えを行うためのマクロを作成したいです。
- 具体的には、指定したシートの特定の列を基準に全体を並び替えるマクロを作成し、他のブックからデータを参照して実行したいです。
- どのようなマクロを作成すれば良いか検討がつかず、ヒントが欲しいと思っています。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
あれ,いつの間にか解決したんですか。 結局ユーザー設定リストの番号を事前に調査しておくのはヤメにしたワケですね。 今回のご質問。 >(1) これはマクロと関係なく,事前の準備としてあなたが用意することです。 >(2) ブックを参照して開く sub macro3() dim myFile as variant dim w as workbook dim a as range Application.AddCustomList ListArray:=Array("A部", "B部", "C部", "D部") myfile = application.getopenfilename() if f = false then exit sub set w = workbooks.open(filename:=myfile) >(3)ブック(B)からデータ(A)を参照 何をしたいのかも,今回ご質問の一連のマクロとどんな関連があるのかも,全くイミフメイです 多分,何かデータを参照する数式をブックBに用意しておくのが良いと思われます。 必要に応じてこの部分は具体的な事例を挙げて,また別途ご相談を投稿してみてください。 >(4) 前回完成したマクロをそのまま上述Macro3に続けます なお,開いたファイルの「どのシート」が操作対象のシートなのか,説明されていません。ご自分で適切にマクロを手直しして実行してください。 Set a = w.worksheets(1).Range("1:1").Find(what:="部", LookIn:=xlValues, lookat:=xlPart) If a Is Nothing Then MsgBox "部が見つかりません" Exit Sub Else MsgBox a.Column & "列に部を発見しました" End If '(3)取得した部列基準で全体の並べ替えを行う a.CurrentRegion.Sort key1:=a, order1:=xlAscending, Header:=xlYes, ordercustom:= (Application.CustomListCount + 1) myFile = application.getsaveasfilename() if myfile = false then exit sub w.saveas filename:=myfile w.close savechanges:=false Application.DeleteCustomList (Application.CustomListCount) End Sub