|    | 
     ▼ゆーあ さん: 
 
「Sheet3をアクティブにして下さい」 
このメッセージは、エクセルやVBAではなく、このマクロで出しています。 
決して、プログラムを直してくださいというメッセージではないんです。 
 
マクロ処理を開始する時点でのデータシート(Sheet3) で選ばれているセルの行 
のデータを転記先シートに転記しますよね。 
ですから、どこが選ばれているかを把握しなきゃいけないんですが、このセル 
(ActiveCell) を参照しようとした場合、必ずこのシートがアクティブになっている 
必要があります。 
 
想定としては、データシートをゆーあさんがアクティブにして、目的の行を選んで 
マクロ実行。 
こう考えているんですが、このメッセージがでたということは、実行時には 
別のシートがアクティブになっているということになります。 
 
それとも、データシート(Sheet3) がアクティブな状態(前面にでている状態)で 
このメッセージがでたあということでしょうか? 
 
もしかして・・・・ 
ゆーあさんの操作手順として、 
・データシート(Sheet3)のコピーすべき行のセルを選ぶ 
・それから、別のシートを選んで、なにかする 
・で、この状態で(別のシートが表示されている状態で)マクロ実行 
・マクロは、前に、データシート上で選択してあったセルの行のデータをコピーする。 
 
もし、こういった流れがいいのなら、SampleA,B,Cともに 
 
  'Just In Case 
  If Not ActiveSheet Is dSh Then 
    MsgBox dSh.Name & "をアクティブにしてから実行してください" 
    Exit Sub 
  End If 
 
これを消して 
 
Application.ScreenUpdating = False の下に 
 
dSh.Select 
 
を追加。 
 
これでいけますけど・・・・ 
 
でも、自分だったら、ちゃんと、選んだ行を目で確認しながら実行しますけど。 
さっき、ちゃんと正しい行を選んでいたかどうか、不安じゃないですか? 
 | 
     
    
   |