- PR -

Excel2000 VBAにてシートの行削除判断

1
投稿者投稿内容
ごん太
大ベテラン
会議室デビュー日: 2002/07/30
投稿数: 182
お住まい・勤務地: 森の中
投稿日時: 2006-03-01 09:19
Excel2000のVBAにてシートの行を削除した時に
マクロを実行させるにはどの様にすればいいのでしょうか??

現在判断としているイベント---------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)

End Sub
-----------------------------------------------------------
ActiveCell.Addressで情報を取得すると「$A$10」と言う情報しか返ってこない為、
本当に行が削除されたかが判断つきませんでした。。。。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-03-01 10:43
引用:

はにまるさんの書き込み (2006-03-01 09:19) より:

Excel2000のVBAにてシートの行を削除した時に
マクロを実行させるにはどの様にすればいいのでしょうか??
ActiveCell.Addressで情報を取得すると「$A$10」と言う情報しか返ってこない為、
本当に行が削除されたかが判断つきませんでした。。。。


そういったイベントはないので、自分で監視 && 解析する必要があります。

行を削除した場合に何かをするのって、再計算などだと思うのですが、
そういう場合は、行を削除した時に限定する必要はないと思います。
具体的に何がなされるか判らないので、何とも言えませんが... (^-^;)

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
ごん太
大ベテラン
会議室デビュー日: 2002/07/30
投稿数: 182
お住まい・勤務地: 森の中
投稿日時: 2006-03-01 11:20
早速の返答ありがとうございますm(_ _)m

私も調べたのですがそのようなイベントがありませんでした。
やはり無いですか・・・。

やりたい事なんですが、特定のセル(F列)を変更した際に再計算マクロを実行するのですが、この時は下記記述をしています。
----------------------------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)

If Mid(ActiveCell.Address, 2, 1) = "F" Then
Call refresh_rtn ''再計算ルーチン
End If

End Sub
-----------------------------------------------------------

行を削除した際にも再計算マクロを実行したいのですが、この状態だと
ActiveCell.Addressで取得するデータは10行目を削除した場合「$A$10」
となり条件にあてはまらない為、再計算ルーチンには飛べません。。。

何か別の方法で判断するしか無いんですかねぇ〜・・・。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-03-01 11:31
引用:

はにまるさんの書き込み (2006-03-01 11:20) より:

行を削除した際にも再計算マクロを実行したいのですが、この状態だと
ActiveCell.Addressで取得するデータは10行目を削除した場合「$A$10」
となり条件にあてはまらない為、再計算ルーチンには飛べません。。。
何か別の方法で判断するしか無いんですかねぇ〜・・・。


再計算が必要なのはセルに変更があった時と、シートの構成が変わった時だと思います。
そういう意味では割り切って SheetCalculate イベントに実装するのも手でしょう。
返って安全だとも言えます。

削除を禁止する方法もありますが、副作用があるのでお勧めできません。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
ごん太
大ベテラン
会議室デビュー日: 2002/07/30
投稿数: 182
お住まい・勤務地: 森の中
投稿日時: 2006-03-01 11:44
なるほど・・・。
ChangeイベントからCalculateイベントへの変更をしてみます。

削除の判断に関しては何らかの変更をしたら自動再計算ではなく、
シートにボタンを設け逃げの方法を取ってみようかと思います。

じゃんぬねっとさん、ありがとうございました(∩_∩)ゞ
1

スキルアップ/キャリアアップ(JOB@IT)