
No.4ベストアンサー
- 回答日時:
こんばんは
順序指定をどうしたいのかよくわかりませんが・・
VBAで処理をなさりたいのであれば、
1)新しいシートにA社のデータの下にB社のデータを転記
2)A:C列を、第一キーをA列、第二キーをC列にしてソート
という手順で行えば宜しいのでは?
※ 通常の昇順、降順で済む範囲であれば、そのままで行けると思います。
特殊な順序を指定したい場合は、D列等にその順序を記入しておいて、そちらをキーにするか、ユーザー設定の並べ替え順を設定しておいてそれを利用するとか。
※ データ範囲の取得方法をご存じなら、あとは「マクロの記録」などを利用して参考になされば、作成は可能と思います。
※ スピル機能が利用できる環境で、かつ、データ数がさほど多くない様であれば、関数を1セルに設定しておくことでも可能です。
VSTACK関数で両方のデータを結合して、SORTBY関数等でSORTすれば可能と思います。
No.3
- 回答日時:
こんばんは
”あくまでサンプルデータでの” 話ですが
既にある回答の通りの手順で処理するのが普通(簡単)だと思います
>Book1(会社A)とBook2(会社B)があります。
これだけですとどこに結果をまとめるのかわかりません
まとめるブックをAAA.xlsmとして
AAA.xlsmはマクロを記録しているブック(まとめるブック)
あくまでマクロで処理したいのであれば、条件は付きますが
(各ブックが開いている)ほぼマクロの自動記録で記録する事が出来ますね
(エラー処理などはできません)
最初にBook1のシートをコピー
Windows("Book1.xlsx").Activate
Range("A1").Select
Selection.CurrentRegion.Select
Selection.Copy
Windows("AAA.xlsm").Activate
Range("A1").Select
ActiveSheet.Paste
Application.CutCopyMode = False
少し分かり難いのはBook2のデータコピーや貼り付け先の記録ですが
少し添削が必要
コピー範囲は
Windows("Book2.xlsx").Activate
Range("A2:C2").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
貼り付け先は
Windows("AAA.xlsm").Activate
Range("A1").Select
Selection.End(xlDown).Select
Selection.End(xlDown).Select
Selection.End(xlUp).Offset(1).Select ’Offset(1)を追加
ここのRangeを削除
ActiveSheet.Paste
後はAAA.xlsmの作業シートのA1セルを選択して Ctrl+Shift+*で選択
リボンの並び替えでA列C列を並び替えして A1セルを選択で終了かな?
記録マクロは分かり難いのであまりお勧めではありませんが、自身で作るという意味で試す価値はあると思います
上記をなぐり書きすると
Sub qqq()
Dim wb As Workbook
Dim wbA As Workbook, wbB As Workbook
Set wb = ActiveWorkbook
Dim bk As Workbook
For Each bk In Workbooks
If bk.Name = "Book1.xlsx" Then Set wbA = bk
If bk.Name = "Book2.xlsx" Then Set wbB = bk
Next
If wbA Is Nothing Or wbB Is Nothing Then
MsgBox "ブックを全て開いて実行してください"
Exit Sub
End If
wbA.Sheets(1).Range("A1").CurrentRegion.Copy wb.Sheets(1).Range("A1")
wbB.Sheets(1).Range("A1").CurrentRegion.Offset(1).Copy wb.Sheets(1).Cells(Rows.Count, "A").End(xlUp).Offset(1)
With wb.Sheets(1).Sort
.SortFields.Clear
.SortFields.Add Key:=Range("A1"), Order:=xlDescending
.SortFields.Add Key:=Range("C1"), Order:=xlAscending
.SetRange wb.Sheets(1).Range("A1").CurrentRegion
.Header = xlYes
.Apply
End With
End Sub
シートが何処かわからないので処理シートはすべて一番左のシートです
もし出来た結果シートを各ブックに追加したい場合は最後に・・・
これも記録できますね
No.2
- 回答日時:
その出来上がり図を見て差し込んだと捉えているのはわかりますけど、慣れた人が見るとそういう処理は考えないんです。
だって結構ふくざつじゃないですか?
挿し込む場所をみつけて、一行開けて貼るのを繰り返すんでしよ?
それよりもまとめてとりあえず最後の続きに貼って並べ替えしたほうが早いと思うんです。
VBAはステップ実行の使い方とか判りますか?コードだけ訊いても応用出来なかった意味が無いので。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「ご処理進めて頂きますようお...
-
エクセルで、日付を入力すると...
-
UMLでの例外処理
-
VBAでループ内で使う変数名を可...
-
EXCEL VBA マクロ 実行する度に...
-
VBAでCOPYを繰り返すと、処理が...
-
DoEventsがやはり分からない
-
switch の範囲指定
-
【Excel】特定の文字を含むセル...
-
UWSC
-
Excel VBAにて2つの処理を同時...
-
ボタンクリックイベント 重複...
-
メルカリのメルカードで買い物...
-
お家デートをしててハグを長い...
-
Select Case文でこのようなこと...
-
セックスレスの既婚女性は自慰...
-
レジ返品交換について(時間がか...
-
緊急です。 知り合いから50kgの...
-
インタラクティブの反対語は?
-
月度は何て読みますか?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「ご処理進めて頂きますようお...
-
エクセルで、日付を入力すると...
-
【Excel】特定の文字を含むセル...
-
switch の範囲指定
-
VBAでループ内で使う変数名を可...
-
EXCEL VBA マクロ 実行する度に...
-
UMLでの例外処理
-
銀行の窓口処理の件で知ってる...
-
VBAでCOPYを繰り返すと、処理が...
-
月度は何て読みますか?
-
インタラクティブの反対語は?
-
VB.NET DataGridViewでIsNewRo...
-
DoEventsがやはり分からない
-
VBの質問#if 0 then ってどう...
-
お家デートをしててハグを長い...
-
セックスレスの既婚女性は自慰...
-
VB.NET Excelを読み込んでDataT...
-
リョウ・・・量?料?
-
メルカリのメルカードで買い物...
-
Loadイベント中にほかのイベン...
おすすめ情報