|
> Dim 氏名 As Range
> Dim AAA As String
> Set 氏名 = Worksheets("Sheet2").Cells(ActiveCell.Row, 1)
> AAA = 氏名.Address(False, False)
>
> 頻繁に、ActiveCellなど使用してますので、
> 現状の管理方法では、とんでもない障害が起こりえるでしょうか??
すべての発言を読んでいるわけではないのですが、
上記のコードをみて ActiveCellの属するシートが心配になったのでした。
ところで、
> 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
は、例えば以下のように書けるでしょう。
Dim sWs As Worksheet
Dim dWs As Worksheet
Dim r As Long
Windows(exiWB).Activate
Worksheets("Sheet3").Activate
r = ActiveCell.Row
Set sWs = Workbooks(exiWB).Sheets("Sheet3")
Set dWs = Workbooks(NewWB).Sheets("データ抽出")
sWs.Cells(r, 1).Resize(, 4).Copy
dWs.Range("B6").Resize(, 4).PasteSpecial Paste:=xlValues
sWs.Cells(r, 5).Copy
dWs.Range("H6").PasteSpecial Paste:=xlValues
・・・以下略 ・・・
こんな感じです。
何度も ActiveCellと連呼せずに、一度定義した r を使い回すと、
逆にそれが変動しているかどうか心配する必要がありません。
これをもっと簡略化したのが、
βさんの ,Valueプロパティに直接書き込む方式です。
すでに、βさんのものがありますから、それを参考にしてください。
# 文章作成後に βさんの投稿があることを知りました。
# たぶん重複しているかと思いますが、あえて追記しておきます。
|
|