Excel2007を使用しています。
あるシートに対して並び替えを行うマクロを作り、ちゃんと動作している事を確認しました。
ちなみに、以下のようなマクロです。
---------------------------------------------------------------------------------
Sub Macro2()
Dim a As Range
'(1)部のユーザー設定リスト追加
Application.AddCustomList ListArray:=Array("A部", "B部", "C部", "D部")
'(2)部はどこ列か
Set a = 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)
Application.DeleteCustomList (Application.CustomListCount)
End Sub
---------------------------------------------------------------------------------
動作↓
(1)ユーザーリストの設定
(2)シートの見出し行で、「部」を含むセルを検索
(3)そのセルを含む列を基準に、(1)で設定した順にソート
このマクロを使用して、
(1)並び替えを行いたいエクセルデータ(A)を用意
(2)新しく作成したブック(B)にファイルを参照するマクロ(ファイルを自分で選ぶようにダイアログを表示させたい)と、そのファイルに対して
並び替えを行うマクロ(既に作成済み)を作成
(3)ブック(B)からデータ(A)を参照
(4)並び替えを行うマクロを実行させ、その結果を別ファイルで保存
という事をさせたいのですが、どのようなマクロを作成すればよいか検討が付きません。
分りにくい説明で申し訳ございませんが、どなたかヒントをいただけたらと思います。
宜しくお願いしますm(_ _)m
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
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel VBAでのWorksheet_Change...
-
Excelのシート上のShapeにイベ...
-
【エクセル】「実行時エラー’10...
-
エクセルファイルを開いた回数...
-
長い時間かかるマクロが実行中...
-
セルの一部分だけを太字にする方法
-
エクセルで複数のシートのクリ...
-
エクセル:セル内の文字列の最...
-
エクセル マクロ 一定時間おき...
-
エクセル シート内の一番下のセ...
-
Excelでセル内の文字をファイル...
-
EXCELのダイアログシートって、...
-
エクセルで特定の行だけ行削除...
-
マクロを有効にしないとExcelフ...
-
「マクロが含まれているファイ...
-
エクセルでランダムな座席表を...
-
複数シートのグループ化ができ...
-
VBA初心者です。 仕事の残業を...
-
エクセルでマクロを作りすぎた...
-
Excelで数字を入れたら対応する...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel VBAでのWorksheet_Change...
-
エクセルで複数のシートのクリ...
-
Excelで数字を入れたら対応する...
-
エクセルファイルを開いた回数...
-
エクセルで特定の行だけ行削除...
-
Excelのシート上のShapeにイベ...
-
【エクセル】フリーワード検索...
-
エクセル シート内の一番下のセ...
-
長い時間かかるマクロが実行中...
-
【エクセル】「実行時エラー’10...
-
EXCELのダイアログシートって、...
-
Excelでセル内の文字をファイル...
-
エクセル:セル内の文字列の最...
-
マクロ1があります。 A1のセル...
-
エクセルのマクロ実行後にカー...
-
セルの一部分だけを太字にする方法
-
Excelのマクロ 検索範囲を広げ...
-
excelで画像のハイパーリンクを...
-
エクセル マクロ 一定時間おき...
-
シートではなくBOOK間で重複し...
おすすめ情報