- ベストアンサー
No.277098 質問:エクセルでできるでしょうか? の回答マクロを使いたいのですが
お世話になっています 私も同じ様に A列に同じ日付が在り、これを効率よく削除したいと思っていました 以前、「No.277098 質問:エクセルでできるでしょうか?」での 回答マクロを使わせて頂こうと思い[Visual Basic エディター] に コピー・ペーストして実行したところ コンパイルエラー:End Sub が必要です。 と叱られました マクロ文の最後にはちゃんと End Sub があるのですが どうしてもうまく実行されません [Visual Basic エディター] にコピー・ペーストする詳しい方法と コンパイルエラーの原因を教えて下さい
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>このマクロの先頭行に >Sub Macro1()・・・・・を書き加えなければいけない >ですよね 。 「Sub Macro1()」= これは必要ないのでは。 イベントプロシージュアーとして、先頭行に既に、Sub ・・・が有るのに、更に「Sub Macro1()」を 外側に、かぶせたように書いておられるが、本当にソウしたのですか。Macro1という別のプロシージュアーを創るものと解釈して、そのEndSubがないといっているわけです。
その他の回答 (1)
- bin-chan
- ベストアンサー率33% (1403/4213)
nishi6さんが回答されたコードのことですね? 貼り付けする先はSheet1です。 何か、余分なコードが残っていませんか? 「Option Explicit」以外の余分なコードが記述されていないことが前提でしょう。 > コンパイルエラー:End Sub が必要です。 は「対応する End Subが無いよ」といってるのでしょうから、 思っていない "Sub"があるように思います。 新規に作成したBookに貼り付けてから、データをコピーしてみてはいかがですか?
補足
あれから随分イジクッテみましたが、 解決できません Const CheckArea = "C1:C30" 'チェックする範囲 Private Sub Worksheet_Change(ByVal Target As Range) Dim rgArea As Range '変更セルとチェックする範囲の共通部分 Dim rg As Range '単一セル Dim Txt(30) As String 'チェックする範囲の内容(文字列で取得) Dim rw As Integer '行カウンタ Dim c As Integer 'チェック用行カウンタ On Error GoTo ErrorHandler 'エラー対応 : : End Sub このマクロの先頭行に Sub Macro1()・・・・・>を書き加えなければいけないんですよね これがいけないのかなアー
お礼
ありがとうございます ようやく解決できました。エクセルマクロの基礎が出来ていないのに このような難しい構文を使おうとして、恥ずかしいかぎりです。 ボチボチと勉強してゆきますので、これからも宜しくお願いいたします