|    | 
     ▼β さん: 
 
おはようございます。 
返信遅くなり、申し訳御座いません。 
 
早速ですが、 
まず、 
>ActiveCell や Selection や ActiveSheet や ActiveWorkbook を前提にした 
>コードは極力避けることが推奨されます。 
>ActiveSheetが本来のものとは異なっていたり、そんなことが往々にして発生し、 
>とんでもない障害になる可能性があります。 
とのことですが、 
   Sheets("Sheet3").Cells(ActiveCell.Row, 1).Select 
のことを仰ってるでしょうか? 
その場合、別件ですがご相談させて頂きたいです。。。 
 
先日、データベースとして使用している元ブックは、 
各データを行で一つのグループに分けていると説明したと思いますが、 
元ブックのSheet構成として、 
 Sheet1:フォーム呼出ボタンのみ(sheet表示) 
 Sheet2:個人データ登録用シート(非表示) 
 Sheet3:(各個人データ)データシート1(非表示) 
 Sheet4:(各個人データ)データシート2(非表示) 
としており、 
操作(登録/更新/削除)は全て、フォーム(個人データ)上で行っております。 
フォーム(個人データ)上に、データシート1&2フォーム呼出のコマンドボタンを 
設置しており、 
フォーム(個人データ)より別フォームを立ち上げて、データを登録 
する様にしております。 
 
Sheet2 
  A  B  C   D   ・・・ 
1 名前 年齢 住所 電話番号 ・・・ 
2 田中 30 ・・・ 
3 佐藤 40 ・・・ 
4 小林 50 ・・・ 
 
Sheet3 
   A   B  C   D   E   F   G  H   
1 依頼日1 受付1 対応1 内容1 依頼2 受付2 対応2 内容2・・・ 
2  1/1  山田 ・・・ 
3  2/1  富樫 ・・・ 
4  3/1  葉山 ・・・ 
 
Sheet4 
   A   B    C   D   E   F   G   H   
1 依頼日51 受付51 対応51 内容51 依頼52 受付52 対応52 内容52・・・ 
2  5/1   富樫 ・・・ 
3  6/1   葉山 ・・・ 
4  7/1   山田 ・・・ 
 
Sheet3の連番でSheet4に続きます。 
どのSheetも2行目は、田中のデータとなり、3行目は、佐藤のデータとなります。 
 
やっと本題ですが、 
Sheet2の氏名位置を基に、各シートのデータ管理を行っているのですが、 
 
  Dim 氏名 As Range 
  Dim AAA As String 
  Set 氏名 = Worksheets("Sheet2").Cells(ActiveCell.Row, 1) 
  AAA = 氏名.Address(False, False) 
 
頻繁に、ActiveCellなど使用してますので、 
現状の管理方法では、とんでもない障害が起こりえるでしょうか?? 
 
 
次に、ご提示頂いたコードについてですが、 
SampleAで動作確認したところ、 
 "Sheet3をアクティブにしてから実行して下さい" 
と言われてしまいました。 
アクティブになるように試してみましたが、ダメでした。 
 
よってSampleBでも同様の現象が起こると思ったので、 
SampleBを使って、 
  Windows(exiWB).Activate 
  Worksheets("Sheet3").Activate 
  Sheets("Sheet3").Cells(ActiveCell.Row, 1).Resize(, 4).Select 
  Selection.Copy 
  Windows(NewWB).Activate 
  Sheets("データ抽出").Range("B6").Resize(, 4).Select 
  Selection.PasteSpecial Paste:=xlValues 
   
  Windows(exiWB).Activate 
  Worksheets("Sheet3").Activate 
  Sheets("Sheet3").Cells(ActiveCell.Row, 5).Select 
  Selection.Copy 
  Windows(NewWB).Activate 
  Sheets("データ抽出").Range("H6").Select 
  Selection.PasteSpecial Paste:=xlValues 
 
に改良してみました、 
C〜E列の記載が無くなった分、早くなった気がしますがどうでしょうか? 
宜しくお願い致します。 
 | 
     
    
   |