Excel VBA質問箱 IV

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

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


5802 / 76735 ←次へ | 前へ→

【76540】Re:コードを短くしたい
発言  γ  - 14/12/29(月) 15:18 -

引用なし
パスワード
   >   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プロパティに直接書き込む方式です。
すでに、βさんのものがありますから、それを参考にしてください。

# 文章作成後に βさんの投稿があることを知りました。
# たぶん重複しているかと思いますが、あえて追記しておきます。

0 hits

【76525】コードを短くしたい ゆーあ 14/12/26(金) 15:42 発言[未読]
【76526】Re:コードを短くしたい β 14/12/26(金) 17:54 発言[未読]
【76527】Re:コードを短くしたい ゆーあ 14/12/26(金) 21:10 発言[未読]
【76528】Re:コードを短くしたい β 14/12/26(金) 22:33 発言[未読]
【76529】Re:コードを短くしたい β 14/12/26(金) 22:38 発言[未読]
【76530】Re:コードを短くしたい ゆーあ 14/12/27(土) 11:37 発言[未読]
【76531】Re:コードを短くしたい β 14/12/27(土) 12:34 発言[未読]
【76532】Re:コードを短くしたい ゆーあ 14/12/27(土) 13:35 発言[未読]
【76533】Re:コードを短くしたい β 14/12/27(土) 16:22 発言[未読]
【76534】Re:コードを短くしたい ゆーあ 14/12/27(土) 17:57 発言[未読]
【76535】Re:コードを短くしたい ゆーあ 14/12/29(月) 11:07 発言[未読]
【76536】Re:コードを短くしたい ゆーあ 14/12/29(月) 11:30 発言[未読]
【76537】Re:コードを短くしたい γ 14/12/29(月) 12:03 発言[未読]
【76538】Re:コードを短くしたい ゆーあ 14/12/29(月) 13:19 発言[未読]
【76539】Re:コードを短くしたい β 14/12/29(月) 15:08 発言[未読]
【76541】Re:コードを短くしたい ゆーあ 14/12/29(月) 18:19 発言[未読]
【76542】Re:コードを短くしたい β 14/12/29(月) 19:41 発言[未読]
【76543】Re:コードを短くしたい ゆーあ 14/12/30(火) 9:00 お礼[未読]
【76540】Re:コードを短くしたい γ 14/12/29(月) 15:18 発言[未読]

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