
No.2ベストアンサー
- 回答日時:
>Worksheets("sheet1").Range("A4:W144").Select
上記、補足で提示したコードの直前には、
Worksheets("Sheett1").Select(Activate)がありますよね。
そうでないと
Worksheets("sheet1").Range("A4:W144").Select
こんなことはできませんから。
で、回答。
Worksheets("Sheet1").Select
Worksheets("sheet1").Range("A4:W144").Select
の2行を削除して以下のようにSortだけにする
'----------------------------------------------------
Worksheets("sheet1").Range("A4:W144").Sort _
Key1:=Worksheets("sheet1").Range("a4"), _
Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
SortMethod:=xlPinYin, DataOption1:=xlSortNormal
'-----------------------------------------------------
●点要点●
1.Sortの範囲をシートを明示して直接指定
2.Keyもどのシートのセルなのか分かるようにシート名を付加する
ソートに限らず他のシートから、Sheet1を扱う場合は、
Selectはしないで、シート名を付加すればいいということです。
以上です。
No.1
- 回答日時:
>どうしても画面がsheet1に移ってしまいます
sheets("sheet1").select
sheets("sheet1").activae
というようなコードがあれば確実にアクティブになります。
どのようなコードで何をあいているのかわかりませんが、
Sheets("sheet2").Range("A1").Copy Sheets("sheet1").Range("A1")
activesheet.Range("A1").Copy Sheets("sheet1").Range("A1")
With Sheets("sheet1")
Sheets("sheet2").Range("A1").Copy
.Range("A1").Paste
activesheet.Range("A1").Copy
.Range("A1").Paste
End With
など、構文で実行シートを指定して、active / select などのコードを含まないコードを書くことでです。
>Application.ScreenUpdating を使ってもマクロ終了時にsheet1の画面になってしまいます。
これは、実行中のシート更新をしないためのオプションですから、構文中でどこかのシートをアクティブにしていれば、処理終了後に最後にアクティブにしたシートが表示されるのは当然の処理です。
この回答への補足
>Sheets("sheet2").Range("A1").Copy
>など、構文で実行シートを指定して
実はソートのマクロなんですが…
Worksheets("sheet1").Range("A4:W144").Select
Selection.Sort Key1:=Range("a4"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _
:=xlPinYin, DataOption1:=xlSortNormal
では、だめでした。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
Excelマクロをバックグラウンドで動かす方法
Excel(エクセル)
-
VBA バックグラウンドで別ブックを開いてデータ転記
Excel(エクセル)
-
Excel VBAを後ろで動かす方法
Visual Basic(VBA)
-
-
4
EXCELをバックグラウンドで実行するには
Excel(エクセル)
-
5
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
6
エクセルマクロをバックグラウンドで実行しているように見せたい
その他(プログラミング・Web制作)
-
7
エクセルで別ブックをバックグラウンドでオープンする方法
Excel(エクセル)
-
8
ファイルを開かずにマクロを実行
Excel(エクセル)
-
9
バックグラウンドのプロセスのエクセルを閉じる方法
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA 空白行に転記する
-
マクロの「SaveAs」でエラーが...
-
VBA別シートの最終行の次行へ転...
-
EXCELのSheet番号って変更でき...
-
Count Ifのセルの範囲指定に変...
-
VBAで変数の数/変数名を動的に...
-
エクセルのVBAについて
-
ExcelのVBマクロを、バックグラ...
-
Unionでの他のシートの参照につ...
-
Excel VBA オートフィルターで...
-
GASでチェックボックスを一括of...
-
100万件越えCSVから条件を満た...
-
Excel VBAで、散布図のデータ範...
-
VBA Userformで一部別シートに...
-
楽天RSSからエクセルVBAを使用...
-
【Excel VBA】別ブックの範囲デ...
-
excel vbaのエラー原因について
-
Excel2013で切り取り禁止
-
Changeイベントで複数セルへの...
-
【VBA】データを各シートに自動...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
マクロの「SaveAs」でエラーが...
-
EXCELのSheet番号って変更でき...
-
VBA別シートの最終行の次行へ転...
-
VBA 空白行に転記する
-
マクロ実行後に別シートの残像...
-
Count Ifのセルの範囲指定に変...
-
楽天RSSからエクセルVBAを使用...
-
VBA 別ブックからの転記の高速...
-
VBAで変数の数/変数名を動的に...
-
Changeイベントで複数セルへの...
-
100万件越えCSVから条件を満た...
-
【Excel VBA】自動メール送信の...
-
VBA 実行時エラー1004 rangeメ...
-
エクセルでデータの比較をした...
-
アクセスからエクセルへ出力時...
-
Excel VBA オートフィルターで...
-
【VBA】データを各シートに自動...
-
複数シートの複数列に入力され...
-
Unionでの他のシートの参照につ...
-
VBA Userformで一部別シートに...
おすすめ情報