- ベストアンサー
Excelマクロで山田太郎さんに関するシートを自動的に削除する方法
- エクセルのマクロを使って【シート1】の山田太郎を削除すると、【シート2】の2~4行に入っている山田太郎さんに関するシートも自動的に削除する方法について教えてください。
- 【シート1】には山田太郎や山田花子などの名簿がありますが、【シート2】では特定の名前のデータを参照しています。そこで、【シート1】から山田太郎を削除した場合、それに関連する【シート2】のデータも削除したいです。
- 具体的には、【シート1】の山田太郎(1行すべて)を削除したときに、【シート2】の2~4行に入っている山田太郎さんに関するシートを自動的に削除する方法を教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。Wendy02です。 今、もう一度読み直して、ちょっと試してみましたが、ワークシートイベントではうまくいきません。既存のコマンドボタンに、全てイベント付けをつけるのは、かなり手間なのです。今は、時間が取れませんので、もし、我こそはと思う方にお任せしたいと思います。 これをボタンに取り付けてください。 Sub TestSample() Dim SearchWord As String Dim myFirstAddress As String Dim myUnionRange As Range Dim c As Range SearchWord = ActiveSheet.Name & "!" & ActiveCell.Address(0, 0) Set c = Worksheets("Sheet2").Cells.Find _ (What:=SearchWord, _ LookIn:=xlFormulas, _ LookAt:=xlPart, _ SearchOrder:=xlByColumns, _ SearchDirection:=xlNext) If Not c Is Nothing Then Do If myUnionRange Is Nothing Then Set myUnionRange = c Else Set myUnionRange = Union(myUnionRange, c) End If Set c = Worksheets("Sheet2").Cells.FindNext(c) Loop Until c Is Nothing End If If Not myUnionRange Is Nothing Then myUnionRange.MergeCells = False myUnionRange.EntireRow.Delete End If ActiveCell.EntireRow.Delete End Sub
その他の回答 (2)
- Wendy02
- ベストアンサー率57% (3570/6232)
こんばんは。 >【シート2】の2~4行に入っている山田太郎さんに関するシートを自動的に削除したい。 確かに、おっしゃることは出来ます。しかし、No.1763213で、「エクセルのマクロで、シートを削除するとき・・・」となっていますから、その延長上にあるとはしても、データを1つ削除して、それに連動して、シート削除というのは、かなり無茶な気がします。せいぜい、行の削除程度なら分りますが。 INDIRECT関数を使用と書いているなら、そのデータは、同時に参照場所のデータを失っているから、データが消えているはずですね。おっしゃっている「シート2」側の部分が明確にはありませんね。 それに、なぜ、INDIRECT関数を使っているか、というようなところまで発展してしまいます。被参照セルを失ったときに、エラーにならないようにしているのではないかと思いますが、式の入っている側を消したら、無意味のような気がします。 どうも、見えない部分が多すぎて、次のステップのイメージがわきません。
補足
ありがとうございます。実は、「行の削除」と書きたいところを「シートの削除」と書き間違えました。申し訳ありません。要は、シート2の2~4行を自動削除できるかということです。
- banker_U
- ベストアンサー率21% (17/78)
あなたのマクロスキルはどれぐらいですか? 求める回答のレベルはどの程度のものですか? イベントプロシージャでできないことはないとは思いますが、ボタンでも作っておいて、マクロを割り当てといた方が、簡単だと思います。
補足
ありがとうございます。マクロ初心者です。それと実は、「シートの削除をしたい」ではなくて「2~4行の行の自動削除をしたい」です。あせっていて書き間違えました。申し訳ありません。
お礼
Wendy02さん、ありがとうございます。私のわかりにくい質問に真摯に取り組んでいただいたことに感激しています。過去の私の投稿まで見ていただいて、なんとかご回答くださろうとしていただいたことに心から感謝申し上げます。実は、初心者の私に上記マクロの利用にまで能力が達しませんでした。ただ感謝の気持ちだけでもお伝えしたく存じます。ありがとうございました。