ExcelマクロVBA再入門 | 第15回.手作業で出来なければマクロは書けない | マクロが覚えられないという初心者向けに理屈抜きのやさしい解説



最終更新日:2015-09-25

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


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

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

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

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


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

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

そもそも、

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


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

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

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

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


この手順が必要です。

■エクセルの機能を知る

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













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

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



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

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


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

・5列とも同一の固定幅にする


・データの最長幅に自動で合わせる


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

・見出し文字の幅に合わせる


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

それぞれ、以下のような、マクロの記録となります。


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


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

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

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



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



COUNTIF関数を知っていれば、



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

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

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


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





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

第14回.セルの書式を設定する(NumberFormatLocal,Font,Barders,Interior)
第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関数)

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

データクレンジングと名寄せ|ExcelマクロVBA技術解説(10月20日)
SUMIFの間違いによるパフォーマンスの低下について|エクセル関数超技(6月17日)
条件式のいろいろな書き方:TrueとFalseの判定とは|ExcelマクロVBA技術解説(6月15日)
空白セルを正しく判定する方法2|ExcelマクロVBA技術解説(5月6日)
フルパスをディレクトリ、ファイル名、拡張子に分ける|ExcelマクロVBA技術解説(4月15日)
テキストボックスの各種イベント|Excelユーザーフォーム入門(4月9日)
フォルダ(サブフォルダも全て)削除する、Optionでファイルのみ削除|ExcelマクロVBAサンプル集(4月4日)
最後の空白(や指定文字)以降の文字を取り出す|エクセル関数超技(3月26日)
先頭の数値、最後の数値を取り出す|エクセル関数超技(3月26日)
Excelファイルを開かずにシート名をチェック|ExcelマクロVBAサンプル集(3月23日)

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

1.最終行の取得(End,Rows.Count)|ExcelマクロVBA入門
2.RangeとCellsの使い方|ExcelマクロVBA入門
3.Range以外の指定方法(Cells,Rows,Columns)|ExcelマクロVBA入門
4.変数とデータ型(Dim)|ExcelマクロVBA入門
5.セルのコピー&値の貼り付け(PasteSpecial)|ExcelマクロVBA入門
6.定数と型宣言文字(Const)|ExcelマクロVBA入門
7.徹底解説(VLOOKUP,MATCH,INDEX,OFFSET)|エクセル関数超技
8.マクロって何?VBAって何?|ExcelマクロVBA入門
9.CSVの読み込み方法|ExcelマクロVBAサンプル集
10.ひらがな⇔カタカナの変換|エクセル基本操作



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

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


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

    ↑ PAGE TOP