• ベストアンサー

No.277098 質問:エクセルでできるでしょうか? の回答マクロを使いたいのですが

お世話になっています 私も同じ様に A列に同じ日付が在り、これを効率よく削除したいと思っていました 以前、「No.277098 質問:エクセルでできるでしょうか?」での 回答マクロを使わせて頂こうと思い[Visual Basic エディター] に コピー・ペーストして実行したところ コンパイルエラー:End Sub が必要です。  と叱られました マクロ文の最後にはちゃんと End Sub があるのですが どうしてもうまく実行されません [Visual Basic エディター] にコピー・ペーストする詳しい方法と コンパイルエラーの原因を教えて下さい

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

>このマクロの先頭行に >Sub Macro1()・・・・・を書き加えなければいけない >ですよね 。 「Sub Macro1()」= これは必要ないのでは。 イベントプロシージュアーとして、先頭行に既に、Sub ・・・が有るのに、更に「Sub Macro1()」を 外側に、かぶせたように書いておられるが、本当にソウしたのですか。Macro1という別のプロシージュアーを創るものと解釈して、そのEndSubがないといっているわけです。 

JOX
質問者

お礼

ありがとうございます ようやく解決できました。エクセルマクロの基礎が出来ていないのに このような難しい構文を使おうとして、恥ずかしいかぎりです。 ボチボチと勉強してゆきますので、これからも宜しくお願いいたします

その他の回答 (1)

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

nishi6さんが回答されたコードのことですね? 貼り付けする先はSheet1です。 何か、余分なコードが残っていませんか? 「Option Explicit」以外の余分なコードが記述されていないことが前提でしょう。 > コンパイルエラー:End Sub が必要です。   は「対応する End Subが無いよ」といってるのでしょうから、 思っていない "Sub"があるように思います。 新規に作成したBookに貼り付けてから、データをコピーしてみてはいかがですか?

JOX
質問者

補足

あれから随分イジクッテみましたが、 解決できません 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()・・・・・>を書き加えなければいけないんですよね これがいけないのかなアー

関連するQ&A