Microsoft 製品に組み込まれている Visual Basic の実装。
返信ありがとうございます。
投稿先を間違えていたようなので再投稿しました。
申し訳ありません。
このブラウザーはサポートされなくなりました。
Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。
Excel 2010 および Excel 2016 で Worksheet_Change イベントで以下のように処理しているときに
別のブックからカット & ペーストするとアンドゥした後の Target がおかしくなってしまいます。
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
MsgBox "アクティブブック: " & ActiveWorkbook.Name & vbCrLf & _
"Target のブック: " & Target.Parent.Parent.Name & vbCrLf & _
"Target のシート: " & Target.Parent.Name & vbCrLf & _
"Target のアドレス: " & Target.Address & vbCrLf & _
"Target の内容: " & Target.Value & vbCrLf & _
"Selection のアドレス: " & Selection.Address & vbCrLf & _
"Selection の内容: " & Selection.Value
Application.Undo
MsgBox "アクティブブック: " & ActiveWorkbook.Name & vbCrLf & _
"Target のブック: " & Target.Parent.Parent.Name & vbCrLf & _
"Target のシート: " & Target.Parent.Name & vbCrLf & _
"Target のアドレス: " & Target.Address & vbCrLf & _
"Target の内容: " & Target.Value & vbCrLf & _
"Selection のアドレス: " & Selection.Address & vbCrLf & _
"Selection の内容: " & Selection.Value
Application.EnableEvents = True
End Sub
例えば
という状態で Book2 の Sheet2 のセル B2 を切り取りして Book1 の Sheet1 のセル A1 に貼り付けると
最初のメッセージは正常なのですがアンドゥした後のメッセージの Target.Address および Target.Value が
(ブックとシート自体は変わらないけど) 切り取り元のアドレスであるセル B2 を指しています。
(本来は [Book1]Sheet1!A1 を指しているはずなのに [Book1]Sheet1!B2 に変わってしまってる)
これは仕様でしょうか、それとも不具合でしょうか。
返信の確認が遅れる場合があります。
Microsoft 製品に組み込まれている Visual Basic の実装。
ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。
返信ありがとうございます。
投稿先を間違えていたようなので再投稿しました。
申し訳ありません。
infade さん、こんにちは。
マイクロソフト コミュニティをご利用いただき、ありがとうございます。
VBA が関連するような場合、一般向けのこのマイクロソフト コミュニティでは該当するカテゴリがないため情報が集まりにくいと思います。
今回の内容であれば、開発者の方々が多く情報交換されている MSDN フォーラムに投稿してみると、通常の動作なのかどうかの情報やアドバイスが寄せられやすくなるかもしれません。
VBA のカテゴリもありますので利用してみてはいかがでしょうか。
◆MSDN フォーラム - Visual Basic for Application (VBA)
よければそちらを活用してみてくださいね。