Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


5062 / 13644 ツリー ←次へ | 前へ→

【52811】コンパイルエラーに対処するには にしもり 07/12/4(火) 18:33 質問[未読]
【52812】Re:コンパイルエラーに対処するには りん 07/12/4(火) 18:40 発言[未読]
【52813】Re:コンパイルエラーに対処するには にしもり 07/12/4(火) 18:44 お礼[未読]

【52811】コンパイルエラーに対処するには
質問  にしもり  - 07/12/4(火) 18:33 -

引用なし
パスワード
   こんにちは。また教えてください。

sheet1のB列5行以下の行に値が入っています。
sheet1のC列5行以下の行にも値が入っています。
sheet1のD列5行以下の行にも値が入っています。

sheet2のB列5行以下の行に値を入れるべきセルが用意されています。
sheet2のC列5行以下の行にも値を入れるべきセルが用意されています。

いま標準モジュールでなくsheet1に、イベントプロシージャを作成しようとしています。
内容はこうです。
sheet1のB列の任意の行をダブルクリックすると、同じ行のC列およびD列の値が、sheet2のそれぞれB列およびC列にペーストされる...という具合です。
ただしsheet2のB列およびC列には、それぞれそすでに値が入っている可能性があります。
入っている場合、xlDownを使って最初にみつかった空白のセルに当該の値をペーストしたいです。
なおsheet2のB5に値が入っていればC5にも必ず値が入っており、B6に値が入っていればC6にも必ず値が入っている・・・・という具合です。

Private Sub WorkSheet_BeforeDoubleClick()
  
 Dim ws1 As Worksheet
 Dim i As Integer

 'sheet1のB列の任意の行をダブルクリック
  '同じ行のC列およびD列の値をコピー
 Set ws1 = Worksheets("Sheet2")
 For i = 5 To ws1.Range("B5").End(xlDown).Row
  'sheet2のB列にすでに値が入っているかチェック
  '値が入っていrなければその行に
  '値が入っていrれば1つ下の行をチェックして、値が入っていrなければその行に
  'コピーした値をペーストする 
  'おわり 
  
End Sub

で質問ですが、この書きかけのマクロをとりあえす実行したら
プロシージャの宣言がイベントまたはプロシージャの定義と一致していません、と出ます。
これがでると根本的な間違いをしてるということでしょうか?
すみません、クラスモジュールというのが理解できてないかもしれません。

【52812】Re:コンパイルエラーに対処するには
発言  りん E-MAIL  - 07/12/4(火) 18:40 -

引用なし
パスワード
   にしもり さん、こんばんわ。

>いま標準モジュールでなくsheet1に、イベントプロシージャを作成しようとしています。
>Private Sub WorkSheet_BeforeDoubleClick()
>プロシージャの宣言がイベントまたはプロシージャの定義と一致していません、と出ます。
>これがでると根本的な間違いをしてるということでしょうか?
太字の部分が抜けています。

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

左のドロップダウンをWorksheet
右のドロップダウンをBeforeDoubleClick
にすると、上記のようになります。

【52813】Re:コンパイルエラーに対処するには
お礼  にしもり  - 07/12/4(火) 18:44 -

引用なし
パスワード
   ▼りん さん:
コンパイルできました。
ありがとうございました。
なんとか進めてみます。

5062 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free