ExcelマクロVBA再入門
第15回.手作業で出来なければマクロは書けない

マクロが覚えられないという初心者向けに理屈抜きのやさしい解説
最終更新日:2015-09-25

第15回.手作業で出来なければマクロは書けない


エクセルの基本は、シート上で効率よく速やかに関数と機能を使い目的の出力を得る事です、


マクロVBAは、この手作業を自動化するものであり、決して特別なものではありません、

まずは手作業でやってみて、それをVBAコードにするという手順が重要です。

もちろん、手作業で出来ない事でもマクロVBAで出来ることもありますが、それはむしろ極一部の事です。

マクロVBAを書き始める前に、事前に手作業でやってみることで、やるべき内容の整理と確認ができて、マクロVBAを書くときに混乱しなくなります。

For~Nextで処理すれば良いような場合は、1行だけで良いので手作業でやってみる事です。

そもそも、

手作業でできない事を、マクロVBAで書ける訳がありません。
日本語で説明できない事を、マクロVBAで書ける訳がありません


もっと根本的な話をすれば、人は知らない事はやりません。
少なくとも、出来るかもしれないという考えがあって初めて挑戦するものです。

だからこそ、エクセルにどんな機能があるかを知らなければマクロVBAを書けるはずがないのです。

マクロVBAで自動化するなら、

・エクセルの機能を知る
・手作業でやってみる
・マクロの記録でVBAコードを調べる

・マクロVBAをかいてみる


この手順が必要です。

■エクセルの機能を知る

以下のダイアログ画面は、
各タブを開いて、それぞれの機能は十分に理解しておいてください。

エクセル マクロ VBA 参考画面

エクセル マクロ VBA 参考画面

エクセル マクロ VBA 参考画面

エクセル マクロ VBA 参考画面

エクセル マクロ VBA 参考画面

エクセル マクロ VBA 参考画面

これらの各ダイアログで出来る事を知っていれば、
後は、マクロの記録でVBAコードは調べられます。

例えば、以下の表をマクロで作成した後、
列幅を調整しようとしたとき、

エクセル マクロ VBA 参考画面

考え方が何通りかあります。

・5列とも同一の固定幅にする
・データの最長幅に自動で合わせる
・見出し文字の幅に合わせる


この3通りのマクロVBAが書けるでしょうか・・・
これを、書籍・ネットで調べていたら、時間がいくらあっても足りません。
手作業で出来れは、マクロの記録で一発です。

・5列とも同一の固定幅にする
エクセル マクロ VBA 参考画面


・データの最長幅に自動で合わせる
エクセル マクロ VBA 参考画面

この状態で、ダブルクリック
または、「ホーム」→「書式」→「列の幅の自動調整」

・見出し文字の幅に合わせる
エクセル マクロ VBA 参考画面

この状態で、「ホーム」→「書式」→「列の幅の自動調整」

それぞれ、以下のような、マクロの記録となります。
エクセル マクロ VBAコード

VBAコードは簡単なもので、マクロの記録で簡単に調べられます。
しかし、操作方法を知らなければ、これらを調べるのはとても時間がかかり困難な事になります。


■ワークシート関数を知る

エクセルには、豊富なワークシート関数があります。
この関数を活用しないと、無駄なマクロVBAを書くことになります。

以下の表で、出席者の数をメッセージボックスに表示するとして、

エクセル マクロ VBA参考

もし、COUNTIF関数を知らないと、

エクセル マクロ VBAコード

COUNTIF関数を知っていれば、

エクセル マクロ VBAコード

もちろん、色々な条件により、前者のようなVBAコードを書いた方が良い場合もないことはありませんが、
少なくとも、今回の例の場合は無駄以外の何物でもありません。
同様に、

MATCH関数を知らなかったら・・・
VLOOKUP関数を知らなかったら・・・

これらと同じ機能をVBAで書こうとしたら、大変だという事は説明が要らないでしょう。


手作業でやってみることで、
処理内容の整理と確認になります。
結果として、
効率的なマクロVBAコードの記述につながります。




同じテーマ「マクロVBA再入門」の記事

第12回.エクセルの言葉を理解する(オブジェクト、プロパティ、メソッド)
第13回.セルのコピペ方法を知る(CopyとPaste、さらに)
第14回.セルの書式を設定する(NumberFormatLocal,Font,Barders,Interior)
第15回.手作業で出来なければマクロは書けない
第16回.エクセルの機能を上手に使う
第17回.セルにブック・シートを指定する(Workbooks,Worksheets,With,Set)
第18回.シートをコピー・挿入・削除する(Worksheets,Copy,Add,Delete)
第19回.ブックを開く・閉じる・保存する(Workbooks,Open,Close,Save,SaveAs)
第20回.全てのシートに同じ事をする(For~Worksheets.Count)
第21回.ファイル一覧を取得する(Do~LoopとDir関数)
第22回.複数ブックよりデータを集める


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

VBAにおける変数のメモリアドレスについて|VBA技術解説(11月8日)
空文字列の扱い方と処理速度について(""とvbNullString)|VBA技術解説(1月7日)
Errオブジェクトとユーザー定義エラー|VBA入門(11月5日)
シングルクォートの削除とコピー(PrefixCharacter)|VBA技術解説(11月4日)
ユーザー定義型の制限とクラスとの使い分け|VBA技術解説(11月3日)
クリップボードに2次元配列を作成してシートに貼り付ける|VBA技術解説(11月1日)
VBAクラスを使ったイベント作成(Event,RaiseEvent,WithEvents)|VBA技術解説(10月31日)
VBAクラスのAttributeについて(既定メンバーとFor Each)|VBA技術解説(10月19日)
VBAの用語について:ステートメントとは|VBA技術解説(10月16日)
VBAのマルチステートメント(複数のステートメントを同じ行に)|VBA技術解説(10月14日)


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

1.最終行の取得(End,Rows.Count)|VBA入門
2.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
3.RangeとCellsの使い方|ExcelマクロVBA入門
4.Range以外の指定方法(Cells,Rows,Columns)|VBA入門
5.変数宣言のDimとデータ型|ExcelマクロVBA入門
6.繰り返し処理(For Next)|ExcelマクロVBA入門
7.マクロって何?VBAって何?|ExcelマクロVBA入門
8.ひらがな⇔カタカナの変換|エクセル基本操作
9.空白セルを正しく判定する方法(IsEmpty,IsError,HasFormula)|VBA技術解説
10.セルに文字を入れるとは(Range,Value)|VBA入門



  • >
  • >
  • >
  • 手作業で出来なければマクロは書けない

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


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




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