エクセルvbaについて質問です。初心者なのでわかりやすい説明をお願いします。2つのセルを選択して内容を入れ替えるという仕掛けを作成しました。Public Sub swap()Dim w, x As Range, y As RangeIf Selection.Areas.Count \u0026lt;\u0026gt; 2 ThenMsgBox \u0026quot;2ヶ所のセルを選択してください\u0026quot;Exit SubEnd IfSet x =Selection.Areas(1)Set y =Selection.Areas(2)w = x.Formulak.Formula = y.Formulay.Formula = wEnd Subセル内容は書き換えられないようにシートの保護をしたところ、”実行時エラー ’1004’;変更しようとしているセルやグラフは保護されているシートにあります。変更するにはシートの保護を解除してください。…。シートの保護を一旦解除してセルを入れ替えた後、再度シートの保護を自動でできる仕掛けが作れるとの記事があったのですが、どこにどのようなコードを書けばできるのかご教示ください。

1件の回答

回答を書く

1257126

2026-06-30 04:25

+ フォロー

例えば「123」というパスワードでシートが保護されているとします。



Public Sub swap()

Dim w, x As Range, y As Range

ActiveSheet.Unprotect \u0026quot;123\u0026quot;

If Selection.Areas.Count \u0026lt;\u0026gt; 2 Then

MsgBox \u0026quot;2ヶ所のセルを選択してください\u0026quot;

Exit Sub

End If

Set x = Selection.Areas(1)

Set y = Selection.Areas(2)

w = x.Formula

x.Formula = y.Formula

y.Formula = w

ActiveSheet.Protect \u0026quot;123\u0026quot;

End Sub

うったえる有益だ(0シェアするブックマークする

関連質問

Copyright © 2026 AQ188.com All Rights Reserved.

博識 著作権所有