回答受付が終了しました
以前、知恵袋でエクセルのマクロ処理ももう少し早く処理するようにしたいと相談したところ、パソコンの性能をあげるよりも前にコードを見直せ的なアドバイスを頂きました。 書いてるのはこんなマクロです
以前、知恵袋でエクセルのマクロ処理ももう少し早く処理するようにしたいと相談したところ、パソコンの性能をあげるよりも前にコードを見直せ的なアドバイスを頂きました。 書いてるのはこんなマクロです Sub 全期間へ移行() Dim a As String, b As String a = ThisWorkbook.Sheets("設定").Range("h5") b = ThisWorkbook.Sheets("設定").Range("h6") c = ThisWorkbook.Sheets("設定").Range("h7") d = ThisWorkbook.Sheets("設定").Range("h8") Workbooks(a).Sheets("りんご簡易").Range(b).Copy Workbooks(c).Sheets("りんご簡易").Range(d).PasteSpecial Paste:=xlPasteValues Workbooks(a).Sheets("りんご分析").Range(e).Copy Workbooks(c).Sheets("りんご分析").Range(d).PasteSpecial Paste:=xlPasteValues Workbooks(a).Sheets("みかん簡易").Range(b).Copy Workbooks(c).Sheets("みかん簡易").Range(d).PasteSpecial Paste:=xlPasteValues Workbooks(a).Sheets("みかん分析").Range(e).Copy Workbooks(c).Sheets("みかん分析").Range(d).PasteSpecial Paste:=xlPasteValues Workbooks(a).Sheets("ぶどう簡易").Range(b).Copy Workbooks(c).Sheets("ぶどう簡易").Range(d).PasteSpecial Paste:=xlPasteValues Workbooks(a).Sheets("ぶどう分析").Range(e).Copy Workbooks(c).Sheets("ぶどう分析").Range(d).PasteSpecial Paste:=xlPasteValues End Sub シート名は変えてあります。適応範囲は変動するのでこういう書き方になっています。 本当はこの5倍ぐらい長いですがシート数が増えているだけです。 やっていることは別のブックに範囲の指定し、コピーで値のみ貼り付けです。 こういう簡単なものでも効率よく書くことは出来るのでしょうか?
すみませんが、書いているマクロもどこかのブログとかからコピーして一部を変えて使っているだけなので、なにを書いているのかがわかった上で書いている訳ではありません。 なので何故ここでこの宣言を使っているのかと言われても、コピペ元がそうだったとしかわかりません。 すみません。なので元の書いたやつを使用可能なものに変えて頂けると幸いです。 勿論これではいけないと思うのでこれを気に、この宣言はどういう意味があるのか等を勉強していきたいと思います。
Visual Basic | Excel・145閲覧