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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Sheet「状況」から、分類の年齢別カウント数をSheet「D表」へ転記する下記マクロを作っています 7 2022/12/14 17:57
- Visual Basic(VBA) VBA For Each 〜 複数条件について 3 2022/10/20 20:05
- その他(プログラミング・Web制作) python文字化けエラーが発生しているようです 3 2022/04/13 19:41
- Visual Basic(VBA) EXCELのVBAについて 2 2023/07/05 17:17
- Excel(エクセル) SUMIFSと日付変換 10 2023/04/16 15:38
- Excel(エクセル) excel macro を、personal.xlsb に作った。excel sheet 開くと、 2 2023/02/21 12:06
- その他(プログラミング・Web制作) ZWCAD CUIXとLISPの関係について 1 2022/09/28 03:07
- Visual Basic(VBA) VBA 別sheetからの転記なのですが 2 2023/05/22 15:55
- スーパー・コンビニ 「コンビニで エクセルをプリントアウト」することができますか? 8 2022/06/16 15:54
- その他(プログラミング・Web制作) pythonでクラスで複数のメソッドを利用する方法 2 2022/04/15 04:17
このQ&Aを見た人はこんなQ&Aも見ています
-
風水の観点で選ぶ観葉植物とは?置き場所や上げたい運気ごとの注意点を紹介!
観葉植物で運気をアップするコツを、風水デザイン1級建築士の福島昌彦さんに伺った。
-
Excelマクロをバックグラウンドで動かす方法
Excel(エクセル)
-
EXCELをバックグラウンドで実行するには
Excel(エクセル)
-
エクセルで別ブックをバックグラウンドでオープンする方法
Excel(エクセル)
-
-
4
Application.ScreenUpdating = Falseが効きません
Visual Basic(VBA)
-
5
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
6
参照元Excelファイルをバックグラウンドで開く方法
Excel(エクセル)
-
7
Excel VBAを後ろで動かす方法
Visual Basic(VBA)
-
8
エクセルマクロをバックグラウンドで実行しているように見せたい
その他(プログラミング・Web制作)
-
9
EXCEL2000 VBA マクロ実行中に他の作業ができないか
Excel(エクセル)
-
10
エクセルマクロ実行中に別ファイル作業でのコピペに影響してしまう
Excel(エクセル)
-
11
DoEventsがやはり分からない
Visual Basic(VBA)
-
12
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
13
バックグラウンドのプロセスのエクセルを閉じる方法
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
マクロの「SaveAs」でエラーが...
-
VBA 空白行に転記する
-
100万件越えCSVから条件を満た...
-
EXCELのSheet番号って変更でき...
-
マクロ実行後に別シートの残像...
-
Count Ifのセルの範囲指定に変...
-
グラフマクロで系列を変数にす...
-
Unionでの他のシートの参照につ...
-
楽天RSSからエクセルVBAを使用...
-
Changeイベントで複数セルへの...
-
VBA 最終行を選んだシートにコ...
-
VBAで質問ですが、皆さんはどの...
-
複数シートの複数列に入力され...
-
VB2005でExcelのグラフのデータ...
-
【VBA】データを各シートに自動...
-
Excel2013で切り取り禁止
-
VBA 実行時エラー1004 rangeメ...
-
RemoveDuplicatesメソッドにつ...
-
VBAでEXCELから固定長...
-
VBA シリアル値から月日への変換
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
マクロの「SaveAs」でエラーが...
-
VBA 空白行に転記する
-
EXCELのSheet番号って変更でき...
-
マクロ実行後に別シートの残像...
-
VBA 別ブックからの転記の高速...
-
VBA別シートの最終行の次行へ転...
-
【VBA】特定の条件でセルをコピー
-
Count Ifのセルの範囲指定に変...
-
100万件越えCSVから条件を満た...
-
楽天RSSからエクセルVBAを使用...
-
VBAコードについて
-
Changeイベントで複数セルへの...
-
VBAで変数の数/変数名を動的に...
-
Excel2013で切り取り禁止
-
グラフマクロで系列を変数にす...
-
VBA 実行時エラー1004 rangeメ...
-
ExcelのVBマクロを、バックグラ...
-
Unionでの他のシートの参照につ...
-
Excel VBA オートフィルターで...
-
アクセスからエクセルへ出力時...
おすすめ情報