[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『VBAで別シートのソート』(はーちゃん)
VBA初心者のため、教えて頂けないでしょうか?
DataInputシート上に設置するボタンで、DataInput シート上のソート実行と別シート(TKSG_Input)上データのソート実行を一度に行いたいのですが、下記コードですとアクティブでない(TKSG_Input)が上手く実行できません。
どのようなコードを追加する必要があるでしょうか?
Sub sortshelf()
Worksheets("DataInput").Range("A3:U42").Sort Key1:=Range("A3"), Order1:=xlAscending Worksheets("TKSG_Input").Range("A3:L42").Sort Key1:=Range("A3"), Order1:=xlAscending
End Sub
< 使用 Excel:Office365、使用 OS:Windows10 >
Sub sortshelf() Worksheets("DataInput").Range("A3:U42").Sort Key1:=Worksheets("DataInput").Range("A3"), Order1:=xlAscending Worksheets("TKSG_Input").Range("A3:L42").Sort Key1:=Worksheets("TKSG_Input").Range("A3"), Order1:=xlAscending End Sub
(もこな2 ) 2020/09/27(日) 11:28
よく見たら↓のように書いてありました。失礼しました。
>アクティブでない(TKSG_Input)が上手く実行できません。
原因と改善方法は提示したとおりです。
(もこな2 ) 2020/09/27(日) 13:06
VBA に対して、処理の許可を与える必要があります。 http://officetanaka.net/excel/vba/sheet/sheet07.htm
処理の前に、 If Worksheets("TKSG_Input").ProtectContents = True Then Worksheets("TKSG_Input").Protect UserInterfaceOnly:=True End If
のように追加してみてどうでしょうか。
(QS) 2020/09/28(月) 01:05
Sub sorttool()
If Worksheets("DataInput").ProtectContents = True Then Worksheets("DataInput").Protect UserInterfaceOnly:=True Worksheets("DataInput").Range("A3:U42").Sort Key1:=Worksheets("DataInput").Range("B3"), Order1:=xlAscending End If End Sub
(はーちゃん) 2020/09/28(月) 11:22
「UserInterfaceOnly パスワード」といった検索で出てくるかと思いますが、下記のサンプルを参照ください。 https://www.moug.net/tech/exvba/0040054.html
必ず保護がかかっているなら If で判定する必要はなく、 Worksheets("DataInput").Protect Password:="my password", UserInterfaceOnly:=True Worksheets("DataInput").Range("A3:U42").Sort Key1:=Worksheets("DataInput").Range("B3"), Order1:=xlAscending だけでよいのではないでしょうか。
(QS) 2020/09/28(月) 11:33
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.