2017年03月27日
ExcelVBA Copy
┏━[PR]━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
WordPressに特化したレンタルサーバー『wpXレンタルサーバー』
─────────────────────────────────
・最新の高性能サーバーマシン&高速ネットワーク
・大容量30GB、月額1,000円(税抜)〜
・リバースプロキシによるキャッシュなど、専用の高速システムを採用
・専用の管理ツールから簡単セットアップ
・過去14日間のデータの自動バックアップ機能
・独自ドメイン対応 & 1契約につき10個のWordPress運用が可能
─────────────────────────────────
https://px.a8.net/svt/ejp?a8mat=2NR2G3+DDNP6A+CO4+ZR2VN
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
マイクロソフトアクセスの記事はこちら
人気ブログランキングへ
にほんブログ村
Copy
セルのコピーの場合は「Copy」を使用します。
引数「Destination」で貼り付け先を指定します。
上記「Sheets("sheet2").Range("a2").Copy Destination:=Range("c3")」を実行
するとA2の内容がC3にコピーされます。
※コピー方法というのは色々やり方があります。
単純にデータだけでいいのであれば「Range("C3")=Range("A2")」でも
実現できます。
Copyメソッドはデータだけでなく、書式等も含めセル全体をコピーします。
注)複数セルの場合は注意が必要です。
単純に「Range("C3:C5")=Range("A2:A4")」ではうまく行きません。
その場合はValueプロパティを使用しましょう。
「Range("C3:C5").Value=Range("A2:A4").Value」としてください。
先ほどの「Range("C3")=Range("A2")」もValueプロパティを省略して
いるだけなのです。
このあたりのことも知っておくとVBAを記述する際に、
簡潔なコードが書けると思います。
VBA上級者と初心者の違いというのは「同じ結果を得るために、いかに
簡潔にコードを記述出来るか」というところにあると思います。
またマクロの記録で作ると下のようになります。
Range("A2").Select
Selection.Copy
Range("C3").Select
ActiveSheet.Paste
記述している内容は分かりますし、正しいのですが、もっと簡潔に記述
できますね。
このようにマクロの記録も初心者の間はそのまま使用する方が楽ですし、
間違いないと思いますが、レベルアップしようと考えるならば、
マクロの記録をそのまま使用しない方が良い時もあります。
※それから別シートに貼り付ける場合
現在Sheet2がアクティブでA2のセル内容をSheet3のC3に貼り付けると
しましょう。
マクロの記録では下記のようになります。
Sheets("Sheet2").Select
Range("A2").Select
Selection.Copy
Sheets("Sheet3").Select
Range("C3").Select
ActiveSheet.Paste
これで動作はします。
しかしなにかごちゃごちゃしていますね。
どこに問題があるかというと「Select」が多用されているとこです。
これを少し書き換えると
Sheets("Sheet2"). Range("A2").Select
Selection.Copy
Sheets("Sheet3").Range("C3").Select
ActiveSheet.Paste
たったこれだけで随分すっきりしますね。
Selectも多用するのは考え物です。
何故ならばプログラムの実行に時間が掛かってしまうためです。
ですから出来るだけSelectは使用しないようにしましょう。
結局、最初に紹介した
「Sheets("sheet2").Range("a2").Copy Destination:=Range("c3")」
が一番簡単でしょうね。
マクロを考える際一番自動化したい部分はコピー・貼り付けだと思います。
それが大量にあればあるほど自動化したいものです。
そのためにCopyに関しては少し詳しく記載しました。
あの有名ショップも【カラーミーショップ】を…。
WordPressに特化したレンタルサーバー『wpXレンタルサーバー』
─────────────────────────────────
・最新の高性能サーバーマシン&高速ネットワーク
・大容量30GB、月額1,000円(税抜)〜
・リバースプロキシによるキャッシュなど、専用の高速システムを採用
・専用の管理ツールから簡単セットアップ
・過去14日間のデータの自動バックアップ機能
・独自ドメイン対応 & 1契約につき10個のWordPress運用が可能
─────────────────────────────────
https://px.a8.net/svt/ejp?a8mat=2NR2G3+DDNP6A+CO4+ZR2VN
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
マイクロソフトアクセスの記事はこちら
人気ブログランキングへ
にほんブログ村
Copy
セルのコピーの場合は「Copy」を使用します。
引数「Destination」で貼り付け先を指定します。
上記「Sheets("sheet2").Range("a2").Copy Destination:=Range("c3")」を実行
するとA2の内容がC3にコピーされます。
※コピー方法というのは色々やり方があります。
単純にデータだけでいいのであれば「Range("C3")=Range("A2")」でも
実現できます。
Copyメソッドはデータだけでなく、書式等も含めセル全体をコピーします。
注)複数セルの場合は注意が必要です。
単純に「Range("C3:C5")=Range("A2:A4")」ではうまく行きません。
その場合はValueプロパティを使用しましょう。
「Range("C3:C5").Value=Range("A2:A4").Value」としてください。
先ほどの「Range("C3")=Range("A2")」もValueプロパティを省略して
いるだけなのです。
このあたりのことも知っておくとVBAを記述する際に、
簡潔なコードが書けると思います。
VBA上級者と初心者の違いというのは「同じ結果を得るために、いかに
簡潔にコードを記述出来るか」というところにあると思います。
またマクロの記録で作ると下のようになります。
Range("A2").Select
Selection.Copy
Range("C3").Select
ActiveSheet.Paste
記述している内容は分かりますし、正しいのですが、もっと簡潔に記述
できますね。
このようにマクロの記録も初心者の間はそのまま使用する方が楽ですし、
間違いないと思いますが、レベルアップしようと考えるならば、
マクロの記録をそのまま使用しない方が良い時もあります。
※それから別シートに貼り付ける場合
現在Sheet2がアクティブでA2のセル内容をSheet3のC3に貼り付けると
しましょう。
マクロの記録では下記のようになります。
Sheets("Sheet2").Select
Range("A2").Select
Selection.Copy
Sheets("Sheet3").Select
Range("C3").Select
ActiveSheet.Paste
これで動作はします。
しかしなにかごちゃごちゃしていますね。
どこに問題があるかというと「Select」が多用されているとこです。
これを少し書き換えると
Sheets("Sheet2"). Range("A2").Select
Selection.Copy
Sheets("Sheet3").Range("C3").Select
ActiveSheet.Paste
たったこれだけで随分すっきりしますね。
Selectも多用するのは考え物です。
何故ならばプログラムの実行に時間が掛かってしまうためです。
ですから出来るだけSelectは使用しないようにしましょう。
結局、最初に紹介した
「Sheets("sheet2").Range("a2").Copy Destination:=Range("c3")」
が一番簡単でしょうね。
マクロを考える際一番自動化したい部分はコピー・貼り付けだと思います。
それが大量にあればあるほど自動化したいものです。
そのためにCopyに関しては少し詳しく記載しました。
あの有名ショップも【カラーミーショップ】を…。
この記事へのコメント
コメントを書く
この記事へのトラックバックURL
https://fanblogs.jp/tb/6098061
※ブログオーナーが承認したトラックバックのみ表示されます。
この記事へのトラックバック