【動画】VBAの基本的なコードの書き方オートフィルやコピペを使う

お知らせこの記事は初心者向用マクロ学習講座|勉強範囲を限定&12本の動画で早く効果を実感の関連記事です

オートフィルやコピペでセルの値に動きを付ける

VBAを使ってコードを自作していきます。書き方は2種類です。

  • オブジェクト.プロパティ=代入する値
  • オブジェクト.メソッド(状況によって引数)

今回は「オブジェクト.メソッド」の型を使ってコードを自作していきます。

マクロ
マクロ

オートフィルやコピー&ペーストはメソッドの一員です

メソッドを使うとオブジェクトに動きを与えることが出来ます。

  • AutoFill
  • Copy
  • ClearContents
  • Find
  • PrintOut

Rangeオブジェクトに属するメソッドの一部です。名前である程度想像つきそうな機能ばかりです。操作の対象となるワークシートやセルに対して動きを持った指示を与える事が出来ます

記事の難易度

引き続き2です。次から少し難しくなります。

記事の難易度
易しい
1
2
3
4
5
難しい

オンラインミーティング

記事には動画も用意しています。動画では分かりにくいという方はオンラインでミーティングも可能です。顔出し無しでもOKです。ご興味ある方は以下リンクをご覧ください。

全国可おすすめ勉強法を紹介書店に並んでいるエクセルVBA(マクロ)関連の本が読めるようになるリモートでマクロの勉強しませんか (VBAで定時に帰ろう) 岡崎のパソコンの生徒募集・教室・スクールの広告掲示板|ジモティー
【ジモティー】投稿ご覧いただきありがとうございます。「VBAで定時に帰ろう」という名前で活動しております。早速となりますが以下ご覧ください。・書店でマクロ… (VBAで定時に帰ろう) 岡崎のパソコンの生徒募集・教室・スクールの広告掲示板|ジモティー

前回記事

前の記事【動画】VBAの基本的なコードの書き方プロパティに文字や値を代入

オブジェクト/プロパティ=代入する値 というコードの型について解説しています

この記事を読むとわかる事

VBAで簡単なコードが書ける様になります。

記事からわかる事
  1. オートフィルメソッドの使い方
  2. コピーメソッドの使い方
  3. 値のクリアの使い方
書いて使ってみよう

マクロ

オブジェクトの属性を書き換えるのではなく範囲や状態に加工を加える事ができる様になります。これだけでも多くの作業をマクロに置き換える事ができますよ。

2分動画

マクロ
マクロ

今回はオブジェクト.メソッド中心の動画ですよ

基本的なコードの書き方が分かる動画を用意しました

動画の中からさらに要点を絞って解説していきます。

メソッドの特徴

  • オブジェクト.メソッドの様にオブジェクトの直下に書く
  • コードの内容に応じて引数を要する必要がある

これだけです。

オブジェクトの直下に書く

「オブジェクト.メソッド」の型通りの話です。コードを書く際オブジェクトを書いた後にドットを入力するとその後に続くプロパティとメソッドの一覧が表示されます。

インテリセンスと呼ばれる機能です。前方のオブジェクトにおいて使う事が出来るプロパティやメソッドが表示されます。

緑の箱が飛んでいる様なアイコンがメソッドです。指で紙を指している様なアイコンはプロパティです。引数の無いメソッドはここでコードを指定してあげればそれでコードが書けます。

プロパティとメソッドのアイコンです。拡大すると画質が落ちるので似たようなアイコンを作りました。
AutoFillメソッドの定数一覧

AutoFillはオートフィルをかける範囲を指定した後にどんな内容でオートフィルするのかを指示する事が出来ます。

セルA1に1という数字があるとします。セルA3までオートフィルする際にオートフィルの内容をデフォルトで実行すると全部のセルに1が記入されてしまいます。

セルA1に1、セルA2に2、セルA3に3を入力したい時は以下の様にコードを書きます。

セルA1に書いた1をセルA3までオートフィルする際1~3が入力される様にする

Range(“A1”).AutoFill Range(“A1:A1000”), xlLinearTrend

xlLinearTrendは「加算」を指示出来ます。これで希望通りの内容でオートフィルが実行されます。xlFillSeriesでも良いです。「連続データ」を指示出来ます。

以下リストにオートフィルで指示できる内容を提示します。

定数内容
xlFillDefault0自動的に適切な種類が選択される
xlFillCopy1セルのコピー
xlFillSeries2連続データ
xlFillFormats3書式のみコピー
xlFillValues4書式なしコピー
xlFillDays5
xlFillWeekdays6月金の日付だけ
xlFillMonths7
xlFillYears8
xlLinearTrend9加算
xlGrowthTrend10乗算
xlFlashFill11フラッシュフィル
Microsoftさんのリファレンスに掲載されているのと同じ数だけ書き出しました。内容列を分かりやすく書き直しています。

個人的にはWeekdaysは驚きましたね。これを使うと月~金だけの日程表が一瞬で作れました。

最後のフラッシュフィルはご存知でしょうか?ここで説明するのは省略しますがうまく使うと一瞬で欲しい値を取得する事が出来る機能です。

マイクロソフトさんのリンクを付けておきました。動画で紹介されているので見ていただくと良く分かります。アイコンも用意されている機能ですのでVBAを書かなくても誰でも簡単に使えます。

Clear関連のメソッド一覧

動画ではClearContentsメソッドがコードを書いたら完了(引数無し)という構文になっています。ちなみにClear関連のメソッドは沢山あります。一覧で紹介しておきます。

私はClearContentsを良く使います。仕事上「書式や罫線は残して文字や値だけ消したい事が多いから」です。ここは人によって差があるので色々試してみてください。

メソッド 値  数式  書式  罫線  リンク コメ
 ント 
 グループ 
Clear削除削除削除削除削除削除
Clear
Contents
削除削除削除
(青字
下線は
残る)
Clear
Comments
削除
Clear
Formats
削除削除
(青字だけ
消える)
Clear
Hyperlinks
削除
(青字
下線は
残る)
Clear
Notes
削除
Clear
Outline
削除
(階層全部)
Rangeオブジェクトに紐付くClear関連のメソッドです

ClearCommentsとClearNotesは効果としては同じです。差が分かりませんでした。

エクセルはコマンドやプロセスが違うけどアウトプットは同じものが何点かあります。その類だと思ってどちらか好きな方を使ってください。

個人的にはClearCommentsでしょうか。理由はそのままで覚えやすいというだけです。

引数を用意する必要がある

メソッドの種類によっては オブジェクト.メソッド(引数) のように最後に引数が必要なものがあります。動画の中ではオートフィルメソッドとコピーメソッドですね。

オートフィルは作業範囲を引数として与えます。コピーはペースト先を引数として与えます。

まとめ

コードを書いてマクロを実行しオートフィルやコピー&ペースト、値の削除を使った一連の流れを見ていただきました。

本日勉強したこと
  1. オートフィルメソッドの使い方
  2. コピーメソッドの使い方
  3. クリア関連のメソッドの使い方
コードが書ける様になりました

マクロ

これで簡単な操作はマクロに置き換える事ができる様になってきました。次回は少しステップアップしてみましょう。罫線を書いて表を作れる様にします。

その後に繰り返し処理と条件分岐について勉強していく予定です。

次の記事VBAで罫線を引く1行のコードで格子状に実線が入る部位毎のコードも紹介

罫線の引き方やWithステートメントについて解説しています
タイトルとURLをコピーしました