Excel VBA質問箱 IV

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

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


419 / 13645 ツリー ←次へ | 前へ→

【80411】見積FMの情報を集計したい mkmk 19/2/11(月) 21:34 質問[未読]
【80412】Re:見積FMの情報を集計したい マナ 19/2/11(月) 21:53 発言[未読]
【80413】Re:見積FMの情報を集計したい mkmk 19/2/11(月) 22:22 回答[未読]
【80414】Re:見積FMの情報を集計したい マナ 19/2/11(月) 22:51 発言[未読]
【80417】Re:見積FMの情報を集計したい mkmk 19/2/12(火) 0:52 回答[未読]
【80421】Re:見積FMの情報を集計したい マナ 19/2/12(火) 19:36 発言[未読]
【80437】Re:見積FMの情報を集計したい mkmk 19/2/16(土) 7:44 お礼[未読]

【80411】見積FMの情報を集計したい
質問  mkmk  - 19/2/11(月) 21:34 -

引用なし
パスワード
   vba超初心者です。
何卒ご教授下さい。

EXCELでの見積書フォーマットを作成(20シート分)し、
最後のシートで集計するVBAを作成したいです。

FMシート(sheet1-20)
C1 提出日
C9 企業CD
D10 企業名
B21:N33 商品見積内容

集計シート(sheet21)
sheet1〜
提出日 B5:B17
企業CD C5:C17
企業名 D5:D17
商品別見積内容F5:R17
:
:
sheet2
提出日 B18:30

という形で集計したく、
excelのマクロ登録でsheet1のコピペを登録し、
sheet2〜は貼り付け先の場所の場所の変更で記録を
したのですが、実行に時間がかかってしまいます。

繰り返しの記述等で簡素化できる方法を教えて下さい。
お願いします。

【80412】Re:見積FMの情報を集計したい
発言  マナ  - 19/2/11(月) 21:53 -

引用なし
パスワード
   ▼mkmk さん:

>excelのマクロ登録でsheet1のコピペを登録し、
>sheet2〜は貼り付け先の場所の場所の変更で記録を
>したのですが、実行に時間がかかってしまいます。

全部で5×20回のコピペですよね。
時間がかかると思えないのですが?

>繰り返しの記述等で簡素化できる方法を教えて下さい。

まずは、現在のコードを提示お願いします。

【80413】Re:見積FMの情報を集計したい
回答  mkmk  - 19/2/11(月) 22:22 -

引用なし
パスワード
   早速のご返答ありがとうございます。

実は項目はもう少し多くありまして、
一つのsheetで下記の記述になっています。
sheet12〜は貼り付け先の場所を変えています。

引き続き宜しくお願い致します。

Sheet11.Select
  Range("C1").Select
  Selection.Copy
  Sheets("date集計").Select
  Range("B5:B17").Select
  Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
  Sheet11.Select
  Range("C2").Select
  Application.CutCopyMode = False
  Selection.Copy
  Sheets("date集計").Select
  Range("C5:C17").Select
  Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
  Sheet11.Select
  Range("C9").Select
  Application.CutCopyMode = False
  Selection.Copy
  Sheets("date集計").Select
  Range("D5:D17").Select
  Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
  Sheet11.Select
  Range("C10").Select
  Application.CutCopyMode = False
  Selection.Copy
  Sheets("date集計").Select
  Range("E5:E17").Select
  Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
  Sheet11.Select
  Range("C50").Select
  Application.CutCopyMode = False
  Selection.Copy
  Sheets("date集計").Select
  Range("F5:F17").Select
  Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
  Sheet11.Select
  Range("C51").Select
  Application.CutCopyMode = False
  Selection.Copy
  Sheets("date集計").Select
  Range("G5:G17").Select
  Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
  Sheet11.Select
  Range("C52").Select
  Application.CutCopyMode = False
  Selection.Copy
  Sheets("date集計").Select
  Range("H5:H17").Select
  Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
  Sheet11.Select
  Range("C53").Select
  Application.CutCopyMode = False
  Selection.Copy
  Sheets("date集計").Select
  Range("I5:I17").Select
  Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
  Sheet11.Select
  Range("C54").Select
  Application.CutCopyMode = False
  Selection.Copy
  Sheets("date集計").Select
  Range("J5:J17").Select
  Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
  Sheet11.Select
  ActiveWindow.SmallScroll Down:=-24
  Range("B14:E14").Select
  Application.CutCopyMode = False
  Selection.Copy
  Sheets("date集計").Select
  Range("K5:N17").Select
  Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
    SkipBlanks:=False, Transpose:=False
  Sheet11.Select
  Range("C16").Select
  Application.CutCopyMode = False
  Selection.Copy
  Sheets("date集計").Select
  Range("O5:O17").Select
  Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
  ActiveWindow.SmallScroll ToRight:=7
  Sheet11.Select
  Range("E16").Select
  Application.CutCopyMode = False
  Selection.Copy
  Sheets("date集計").Select
  Range("P5:P17").Select
  Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
  Sheet11.Select
  Range("B21:N33").Select
  Application.CutCopyMode = False
  Selection.Copy
  Sheets("date集計").Select
  Range("Q5").Select
  Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
  ActiveWindow.SmallScroll ToRight:=11
  Sheet11.Select
  ActiveWindow.SmallScroll Down:=9
  Range("B37:N48").Select
  Application.CutCopyMode = False
  Selection.Copy
  Sheets("date集計").Select
  Range("AD5").Select
  Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False


▼マナ さん:
>▼mkmk さん:
>
>>excelのマクロ登録でsheet1のコピペを登録し、
>>sheet2〜は貼り付け先の場所の場所の変更で記録を
>>したのですが、実行に時間がかかってしまいます。
>
>全部で5×20回のコピペですよね。
>時間がかかると思えないのですが?
>
>>繰り返しの記述等で簡素化できる方法を教えて下さい。
>
>まずは、現在のコードを提示お願いします。

【80414】Re:見積FMの情報を集計したい
発言  マナ  - 19/2/11(月) 22:51 -

引用なし
パスワード
   ▼mkmk さん:

とりあえず、こんな感じで
selectしない記述にしてください。

で、規則性がわかるように2シート分作成してみてください。

  Sheet11.Range("C1:C2").Copy
  Sheets("date集計").Range("B5:C17").PasteSpecial Paste:=xlPasteValues, Transpose:=True

【80417】Re:見積FMの情報を集計したい
回答  mkmk  - 19/2/12(火) 0:52 -

引用なし
パスワード
   ありがとうございます。

SELECT記述をしないとすっきりしますね。
ただ、速さはあまり変わらないように感じました。

他に良い方法があると良いのですが・・・

【80421】Re:見積FMの情報を集計したい
発言  マナ  - 19/2/12(火) 19:36 -

引用なし
パスワード
   ▼mkmk さん:

>ただ、速さはあまり変わらないように感じました。
>

100回のコピペなら1秒もかからないと思います。
どのくらい時間がかかっているのでしょうか?

【80437】Re:見積FMの情報を集計したい
お礼  mkmk  - 19/2/16(土) 7:44 -

引用なし
パスワード
   お礼がおそくなってすみません。

あれから、VB以外の問題も考え、FMを作り直して実行したところ
早くなりました。
何が原因かは不明なのですが・・・

SELECTを除いてすっきり早くするやり方を教えて頂いて
ありがとうございました。

▼マナ さん:
>▼mkmk さん:
>
>>ただ、速さはあまり変わらないように感じました。
>>
>
>100回のコピペなら1秒もかからないと思います。
>どのくらい時間がかかっているのでしょうか?

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