エクセルの神髄
Excelマクロの記録で覚えるVBA

ExcelマクロVBAの自動記録を使ってのマクロVBA入門・初心者向け解説、記事の目次です
最終更新日:2019-12-23

Excelマクロの記録で覚えるVBA


Wxcelマクロの記録を使うと、手動操作がVBAで自動記録されます。
このマクロの記録を使って記録されたVBAコードを読み、そして修正しつつマクロVBAを覚えていこうというシリーズです。


マクロVBAをある程度覚えた後にも、マクロの記録はVBAコードを調べるときにとても役立ちます。、
そうした時の為にも、自動記録されたVBAコードはしっかり読めるようになっておきましょう。

本シリーズは、Excel2010の頃にブログで順に掲載したものを転載したものになります。
したがって、説明文や進め方は日々書き綴ったブログ風となっています。
また、まだまだExcel2003も使われていたので、Excel2003とExcel2007以降を併記しています。

VBA全体の学習の進め方については、以下をご覧ください。

★ExcelマクロVBAを習得する方法と範囲★
ExcelマクロVBAの基礎を学習する方法、マスターする道順についてです。ExcelマクロVBAは非常に便利です、手作業では、数時間・数日かかる処理が、ほんの一瞬で処理できてしまいます。ただし、マクロVBAを書く為に、相応の時間はかかりますが、それでも、そのマクロVBAを書く時間は一度きりです。


もし、マクロVBAをはじめてやってみようという場合であれば、
Excelマクロ再入門

VBAを学習しようとして、本を読んでもWEBをみても、結局挫折してしまった方を対象に、VBA再入門と題してマクロVBAの基礎の学習を実践形式で進める連載を開始します。理屈は最低限にとどめ、とにかくマクロVBAが書けるようになることを目的とします。
ここの第1回から第24回を先に読みながら実際にVBAを書き進めてみることをお勧めします。
マクロの記録は、手動操作に対応するVBAコードが不明な場合のツールとして使うものになります。

本シリーズは、むしろVBAを多少なりともやったことがある人が読み物として軽く読み進めると良いと思います。
読み進める過程で、今まで見過ごしてきたものが見えてくるものがあるはずです。

マクロの記録で覚えるVBAの目次

プロローグ
新シリーズとして、「マクロの記録で覚えるVBA」を開始します。マクロは、エクセルの機能の一つです。マクロとは、一般用語では、巨大な塊等を指しますが、パソコンでは、あらかじめ登録されている操作の手順の塊を指します。

第1回.マクロを記録して実行
さっそくはじめましょう、でも、始める前に、エクセル2007、2010の場合は、「開発」タプを表示しておきましょう。「オフィスボタン」→「Excelのオプション」→「基本設定」で、「開発」タブをリボンに表示する、にチェックを付けます。これで、リボンの最後に、「開発」が表示されます。

第2回.セルに文字を入れる
前回の復習、ちゃんとやりましたか(笑) もう一度だけ書きます、これでお終いです、覚えて下さい。では、前回作成したマクロの中身をみてみましょう。SubMacro1()''Macro1Macro' 'ActiveCell.FormulaR1C1= "マクロの記録で覚えるVBA"ActiveCell.Characters(5,

第3回.複数セルに文字を入れる
前回作成したマクロです。さて、おそらく誰でも思う事は、1行で書けないのかってことだと思います。書けます!Range("A3").Selectは、セルA3を選択し、アクティブにしています。そして、ActiveCell.… つまり、ここでのアクティブセルとは、A3になる訳です。

第4回.連続数値を入れる
さて、前回までで、セルに文字をいれることが出来ました。今回は、セルに連番を入れて見ましょう。行番号として、1、2、3、4…のように入れてみます。まず、準備として、以下をやって下さい。1.エクセルを起動する 2.VBE(VisualBasicEditor)を起動する 3.「ツール」→「オプション」「変数の宣言を強制する」にチェックする 4.「OK」以上で準…

第5回.100マスに数値を入れる
まずは、前回の宿題の回答です。縦に入れた時の、この部分を Cells(i,1)=i Cells(1,i)=iこのように、行数と列数を入れ替えます。これで横に1~10が入ります。では次は、縦10、横10のセルに、1~100までを入れてみましょう。

第6回.別のシートにコピーする
前回作成した100マスを別のシートにコピーしてみましょう。ここでは、「Sheet1」に100マスがあり、それを「Sheet2」へコピーします。いまは、「Sheet1」が開いていて、セルA1がアクティブになっています。

第7回.別のシートにコピーする2
前回は、値の貼り付けを「マクロの記録」で行い、そのマクロを修正しました。以下になります。今回は、同じ事を「.COPY」を使わずにやってみましょう。そもそも、これは何をしているかと言うと、「.COPY」で、セルをクリップボードに入れ、クリップボードの値のみセルに入れています。


第8回.計算式を入れる
前回までは、セルに文字を入れました。エクセルは表計算ソフトですから、計算式を入れたいですよね。今回からは、計算式を入れる方法、その値をコピーする方法等の説明になります。では、以下のようなシートを作成して下さい。

第9回.計算式をコピーする
前回作成した100マス計算を、別シートにコピーしてみましょう。第6回、第7回の内容とほぼ同様になります。エクセルVBAでは、このシート間のデータコピーが最もよく行われる事の1つであり、VBAの基本でもあります。

第10回.計算結果を入れる
前回作成した100マス計算の回答部分を、マクロで計算して入れてみましょう。従って、マクロの記録は使いません。タイトルと違うね(笑)、でもね、マクロの記録では出来ない事が多いのです。だから、VBAを覚える必要があるのです。

第11回.イミディエイトで値の確認
前回、FormulaR1C1とValueの違いを説明しましたが、それを確認するための方法を紹介します。これはデバックで使用するツールになります。デバッグとは、プログラムの誤り(バグと呼ばれる)を探し、取り除くこと。

第12回.セルに色を塗る
今回はちょっと難しいことをします。100マス計算に手入力で回答を入れて、その結果の成否を判定してみましょう。100マスの計算結果を一旦全て消して下さい。手入力で、回答を入れて下さい。掛け算九九は大丈夫ですか(笑) 全部入れなくて良いです。

第13回.罫線を引く
前回までで、文字、数値を入れ、色も塗りました。この辺で、罫線の引き方をやりましょう。100マス計算の罫線を、一度全て消してください。ではマクロの記録です。1.マクロの記録 2.A1~K11を選択 3.罫線の格子(外側、内側を細線) 4.記録終了 作成されたマクロは、驚くほどの長さですね、少し笑えます。

第14回.行列を入れ替えて張り付け
はい、今回は、「形式を選択して貼り付け」の「行列を入れ替える」をやってみましょう。Sheet1の100マスを、Sheet2へ、行列を入れ替えて貼り付けします。ではマクロの記録です、Sheet2を選択している状態からです。

第15回.いろいろな消去
セルの値や書式等を消去してみましょう、では、マクロの記録です、1.マクロの記録 2.A1~K11を選択…範囲は適当で良いです。3.「Delete」4.罫線で、枠なし 5.塗りつぶしで、塗りつぶしなし 6.フォントの色で、自動 7.セルの書式設定で、標準 8.記録終了 作成れたマクロは、Selection.ClearContents これは、

第16回.行の挿入・削除
行の挿入と、行の削除をやってみましょう、では、マクロの記録です。1.マクロの記録 2.1行目を選択 3.「挿入」…Ctrl+Shift++ 4.A列を選択 5.「挿入」…Ctrl+Shift++ 6.1行目を選択 7.「削除」…Ctrl+Shift+- 8.A列を選択 9.「削除」…Ctrl+Shift+- 10.記録終了 作成れたマクロは、

第17回.並べ替え
エクセルでは避けて通れない、「並べ替え」をやります。実は、あまりやりたくないのですが… いや、2003と2007以降で、全く変わってしまったのです。1行目がタイトル、2~11行にデータが入っているとします。

第18回.オートフィルタ
フィルタをやりましょう。まあ、表計算らしい機能ではあります。では、マクロの記録です、データは何でも良いでしょう。1.マクロの記録 2.フィルタ 3.1のみ選択…たまたま1のデータを入れただけです。4.記録終了 作成れたマクロは、2003の場合は、Selection.AutoFilterSelection.AutoFilterField:=1,

第19回.オートフィルタ2
前回の続きで、フィルタをやります。以下の表で説明します。では、マクロの記録です。まずは、日付の絞り込みです。1.マクロの記録 2.A1を選択 3.フィルタ 4.2011/6/5のみ選択 5.記録終了 作成れたマクロは… (コメント行は省略します) 上は、2010or2007でのマクロの記録です。

第20回.ジャンプのセル選択
割と便利で、使っている人は使っている、使っていない人は使っていない。(←当たり前) 「ジャンプ」の「セル選択」をやってみましょう。まずは、新規シートのバラバラな位置に数値を入れて下さい。では、マクロの記録です。

第21回.条件付き書式
非常に便利で、ぜひ使いこなしたい機能の1つに、条件付き書式があります。今回は、この条件付き書式をマクロの記録をしてみましよう。では、マクロの記録ですが、バージョンによって操作が違うので、まずは、2007、2010です。

第22回.シートの移動コピー
シートの移動、コピーをやってみましょう。まずは、マクロの記録です。ブックはBook1.xls、シートは、Sheet1、Sheet2、Sheet3、があり、Sheet1が選択状態から。1.マクロの記録 2.Sheet3をドラッグで先頭へ移動 3.Sheet3をCtrlを押しながら、最後にコピー 4.新規シートを最後に追加…Sheet5が作成される 5.Sh…

第23回.セルの結合
はい、セルの結合をやります。では、マクロの記録から 1.マクロの記録 2.A1~B2を選択 3.セルを結合して中央揃え 4.記録終了 作成れたマクロは… うーん、長いですよね、省略できるところは省略しちゃいましょう。SubMacro1()WithRange("A1:B2").HorizontalAlignment= xlCenter.MergeEndWi…

第24回.印刷
印刷やります。本当は、ペーパーレスが良いのですが、なかなかそうもいきません。では、マクロの記録から、2010での記録です。1.マクロの記録 2.印刷 3.記録終了 作成れたマクロは… ActiveWindow.SelectedSheets.PrintOut これで印刷します。

第25回.開く・保存・閉じる
いろいろやってきましたが、変更したエクセルをマクロで保存する必要があります。さらに、その前に、他のブックを開くことも必要になってきます。ではマクロの記録です。1.マクロの記録 2.フャイル 3.開く…ファイルを指定(C:\Excel\Book2.xls) 3.記録終了 作成れたマクロは… ChDir"C:\Excel" これは無視して下さい。

第26回.最終回
全25回に渡って、マクロの記録をやってきましたが、今回で終わりとします。ここまでの内容が理解できれば、後は、ご自身でマクロの記録から、自由に作成できるはずです。マクロの記録で作成されたマクロには、無駄が多く、処理速度も遅いです。



新着記事NEW ・・・新着記事一覧を見る

CSV読み込みとopen()関数とwith文|Python入門(9月28日)
フォルダとファイルの一覧を取得(os,glob,pathlib)|Python入門(9月26日)
import文(パッケージ・モジュールのインポート)|Python入門(9月24日)
例外処理(try文)とexception一覧|Python入門(9月23日)
リスト内包表記|Python入門(9月22日)
Pythonの引数は参照渡しだが・・・|Python入門(9月21日)
lambda(ラムダ式、無名関数)と三項演算子|Python入門(9月20日)
関数内関数(関数のネスト)とスコープ|Python入門(9月18日)
関数の定義(def文)と引数|Python入門(9月18日)
組み込み関数一覧|Python入門(9月17日)


アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|VBA入門
2.RangeとCellsの使い方|VBA入門
3.変数宣言のDimとデータ型|VBA入門
4.マクロって何?VBAって何?|VBA入門
5.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
6.Range以外の指定方法(Cells,Rows,Columns)|VBA入門
7.繰り返し処理(For Next)|VBA入門
8.セルに文字を入れるとは(Range,Value)|VBA入門
9.とにかく書いてみよう(Sub,End Sub)|VBA入門
10.マクロはどこに書くの(VBEの起動)|VBA入門




このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


記述には細心の注意をしたつもりですが、
間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。



このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
本文下部へ