Excel VBAの第一歩、主な概念を知ろう

セルのコピー

全333コースを10日間無料で

ぜひご覧ください。

無料で視聴する すべての加入プランを見る
または
実務でよく使われる、セルのコピーのやり方を覚えましょう。
講師:
08:58

字幕

このレッスンではセルのコピーについて解説します。セルのコピー。皆さんよくやりますよね。手動でよくやる操作というのはマクロでもよくやります。マクロでセルをコピーするにはどうしたら良いのでしょう。分からない時はマクロ記録で調べます。では実際にセルをコピーした操作をマクロ記録したとしましょう。どの様なコードが記録されるのか。先ず、最初にやることはコピー元を選択しますね。例えば A の 3 から C の 3 だったとしましょう。コピー元を選択したら次はコピーします。ツールバーやリボンのコピーボタンをクリックしたり或は Ctrl+C 等のショートカットキーもありますね。次にやることは何ですか。コピー先、つまり貼り付け先を選択するんですね。この時コピー元と同じ大きさを選択する必要はないんですね。左上のセルだけを 1 つ選択すれば十分です。そして、この後やることは貼り付けます。この貼り付けという作業はクリップボードにあるデータを貼り付けることを言います。この様にマクロ記録したとしましょう。すると、この操作でどんなコードが記録されるのかこういうコードが記録されます。1 行目は先ず A の 3 から C の 3 を選択しろ、セレクトしろ、というコードです。 その通りに操作したからです。2行目は選択したもの、つまりセレクションをコピーしろという命令です。3 行目は貼り付けるためにアクティブセルを移動しましたね。従ってセル A6 を選択しろ。そして最後にクリップボードにあるデータを貼り付けろ、ペーストしろ。実際にこの様にやったのですからこういうコードが記録されます。しかし勘違いをしないでください。マクロ記録というのは貴方がやりたいことが記録されるのではないのです。貴方が実際にやったことが記録されるのです。実際には A の 3 から C の 3 をコピーしたかったのです。しかし、先ず選択してそれをコピーする。この様に操作するしかないです。マクロ記録はそれを忠実に再現しています。今、貴方はこうやりましたよと言っているだけです。マクロ記録したコードはそのまま使ってはいけません。マクロ記録したコードは先ず読みます。そして無駄を省きます。マクロ記録のコードには無駄が非常に多いんですね。典型的な無駄な書き方はこのマルマル.SelectSelection.バツバツという記述です。これは無駄です。これはどういうことかというと。例えば学校の先生が生徒に指示を出す時例えば「田中君走りなさい。」と指示を出す時に直接「田中.走れ」と言えばいいものを「田中君、私の前に来なさい。」「私の前にいる人、走りなさい。」と冗長な言い方をしている様なものです。 マクロ記録をした場合概ね 7 割方 8 割方のケースではこの Select、Selection はカットして直接マルマル、バツバツと書けます。今、概ね 7 割方 8 割方の様な言い方をしましたがでは Select、Selectionをカットできない削れない場合があるのでしょうか。あります。それはグラフ或はオートシェイプ等ワークシート上のセルに依存しないで自由に配置できる様なものグラフがそうですね。オートシェイプもそうですね。又、貼り付けをした画像等もそうですね。それらを総称してシェイプ等と呼びます。そうしたシェイプの操作をマクロ記録するとこの様にマルマル.SelectSelection.バツバツと記録されます。しかし、その時Select、Selectionを削るとエラーになる場合が多いです。ちょっと複雑なんですね。そういうシェイプに関してはセレクトしたものと、セレクションされているものが微妙に変わったりしています。従ってマクロ記録したコードに対しSelect、Selectionを削ったらエラーになった。そういう時は残しておけば良いでしょう。しかし、そうではなく我々がよく使うセル、ワークシートブックの操作に関してはこれは間違いなく消せます。 Select、Selection は冗長です。従って消します。Select、Selection をこの様にするとマクロ記録したコードは 3 行になりました。未だ終わりではありませんよ。この 3 行をそのまま使ってはいけませんよ。今、我々は何をしているんでしたっけ。セルのコピーの仕方が分からないから調べているんですよね。そうしたらマクロ記録がヒントをくれたのです。セルのコピーには、この copy という命令を使うんだよ。とヒントをくれたに過ぎません。次に我々がやるべきことはこのコピー、copy に対してヘルプで調べるということです。この作業を怠ってはいけません。コピー、copy のヘルプを見ると1 つ引数があるということが記載されています。名前は destination という引数です。英語が得意な方だったらなんとなく想像が付くかもしれませんね。destination とは目的地、到達点ゴール等を表す様な英単語です。解説にこうあります。この引数にはコピー先のセル範囲を指定します、と。コピー先のセル範囲です。もし、この引数を省略するとクリップボードにコピーされます。マクロ記録したコードはこの引数が省略されていましたね。 それは仕方ありません。だって実際に操作を行った段階でコピーした時には未だコピー先貼り付け先が決まっていなかったのですから。だから、この destination を指定できるわけがないのです。つまりヘルプを見るとこのコピーという命令はコピー先を同時に指定できるんだということが分かります。従ってセルのコピーはコピー元のセル範囲.copy半角スペースを空けて destination:= コピー先と書けばいいんだということがヘルプを見れば分かります。或は、この様に引数つまりメソッドの補足事項ですね。これを 1 つしか指定しない場合は引数の名前と := を省略できるというルールが VBA にはあります。従ってセルのコピーはコピー元のセル範囲 .copy半角スペースを空けてコピー先と書くだけでいいんだと分かります。先ほどマクロ記録したコードから無駄な Select、Selection を消しました。3 行になりましたが未だ、これでは終わりではありません。ヘルプを調べた結果コピーの右側に貼り付け先コピー先を指定できるということが分かります。従って Range A の 6 をコピーの右側に書いてあげればいいんです。 この場合クリップボードにコピーしたのではありませんのでクリップボードのデータを貼り付けるペーストという操作も不要になります。これが正しいコピーのやり方です。間違ってもマクロ記録で記録された4 行のコードをそのまま使うことのない様注意してください。このレッスンではセルのコピーについて解説しました。

Excel VBAの第一歩、主な概念を知ろう

マクロの自動記録の機能は便利ですが、VBA (Visual Basic for Applications)を使って自分でマクロを作れるようになるには基礎から学習するしかありません。このコースではVBAの概念とその基礎知識から、実務において実際に役立つマクロの作成の仕方まで順を追って解説します。

2時間19分 (31 ビデオ)
現在、カスタマーレビューはありません…
 
ソフトウェア・トピック
価格: 1,990
発売日:2014年01月13日

このコースは、「オンデマンド」でご利用可能であり、ダウンロードすることもオンラインで見ることもできます。

ダウンロードすると、オフラインでコースを使用し、豊富なインターフェースをフルに活用できます。複数のデバイスを使用したり、 一度に全コースをダウンロードしたくない場合は、アカントにログインして、ストリーミング・ビデオとしてコースのレッスンを視聴してください。

ビデオトレーニングをお楽しみいただけますように! お問い合わせは、cs-jp@lynda.com宛までご連絡ください。