• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excel2007 他ブックに対してマクロを実行)

Excel2007 マクロを使って他ブックに対して並び替えを行いたい

このQ&Aのポイント
  • Excel2007を使用して他のブックに対して並び替えを行うためのマクロを作成したいです。
  • 具体的には、指定したシートの特定の列を基準に全体を並び替えるマクロを作成し、他のブックからデータを参照して実行したいです。
  • どのようなマクロを作成すれば良いか検討がつかず、ヒントが欲しいと思っています。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.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