ExcelマクロVBA再入門
第30回.今後の覚えるべきことについて

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

第30回.今後の覚えるべきことについて


マクロ再入門と題として、シリーズ全30回の最終回になります、
マクロ再入門で学んで、ある程度はマクロが書けるようになったものと信じます。


しかし、
やりたい事、やるべき事を、
自由自在にマクロとして書けるようになるには、
道はまだ半ばです。


マクロ再入門は、少なくとも2回は復習してください。
1日1回で2ヵ月
1日2回で一か月

何事も時間を掛ければ良いというものではない・・・
確かにその通りで、短時間で習得出来ればそれに越したことはないと思います。

しかし
しかし
しかし

人間がある事になじむには時間が必要なのです。
一定時間を掛けなければ習得出来ないこともあります、
いいえ、何事も一定時間を掛けなければ習得できないのが普通なのです。
そして、一定時間を掛けると、なぜかそれが身体・脳になじんでくるのです。
VBAの場合は脳になじむ時間が必要です。
脳になじむ前に、次々に新しい事を覚えようと詰め込むと、かえって脳が受け付けなくなります。
マクロが難しい・覚えられないという人の多くが、この状態だと思います。
まずは、必要最低限の事を、脳になじむまで反復練習してください。
ですから、
マクロ再入門は、少なくとも2回は復習してくださいと言っているのです。
始める前とは、違ったものが見えるようになっているはずです。

マクロの基本が、脳になじんだら、後は知識の幅を順次広げていきましょう。
エクセルVBA入門 のページを順次読み進めて下さい。

第9回.Rangeでのセルの指定方法
前回までに出てきたRangeの使い方は、Range("A1") で、1つのセルを指定する場合でした。では、複数のセル(つまりセル範囲)を指定する場合どうするか。マウスでドラッグして、複数のセルを選択しますよね、そのような場合です。
第10回.Range以外の指定方法(Cells,Rows,Columns)
Rangeの指定で、あらゆるセルおよびセル範囲は指定できるのですが、マクロで使う場合は、ちょっと使いづらい場合があります。もっと、プログラムっぽい(笑)指定方法があります。まずは、Cells(行,列) 行は、縦の行位置です、1行目は1、10行目は10です。
第22回.条件分岐(Select Case)
前回のElseIf以外の、多肢条件分岐の別の書き方があります、それがSelectCaseになります。むしろElseIfより、このSelectCaseの方が、より多肢条件分岐に適していると言えます。SelectCaseは、多肢条件分岐に特化したステートメントになります。
第31回.セルの書式(表示形式,NumberFormatLocal)
セルは、表示形式を指定することで、セルに入っている値は同じ値でも色々な見え方をさせる事が出来ます、セルの値はそのままで、見た目だけをユーザーに見やすい形にすることが出来ます。同じ数値の、12345でも 12345、12,345、\12,345 等の違う表示方法を指定する事が出来ます。
第33回.セルの書式(フォント,Font)
セルで表示している文字の書体の指定方法です( セル(Rangeオブジェクト)のフォントは、Fontプロパティになります。Fontプロパティは、Fontオブシェクトを返します。解りづらい説明だと思います。
第34回.セルの書式(塗りつぶし,Interior)
セルを目立たせる最も有効な手段はセルを色で塗りつぶすことでしょうセル(Rangeオブジェクト)の塗りつぶし(パターン)はInteriorプロパティになります。InteriorプロパティはInteriorオブシェクトを返します。つまりInteriorプロパティを経由してInteriorオブシェクトを扱う事になります。
第35回.セルの書式(罫線,Border)
マクロで罫線を引く事はた度々あります、シートのデータ範囲がマクロで変更されてしまう場合は、罫線を引き直す事が必要になってきます。ネット等を検索すると、罫線を引くマクロは書き方が千差万別となっているようです、そして、マクロの記録を使用して作成したマクロの最悪のケースとなっています。
第40回.セルのコピー・カット&ペースト(Copy,Cut,Paste)
VBAにおいてあるセルをコピーまたはカットして他のセルに貼り付ける場合のVBAの説明になります手作業でセルをコピー(Ctrl+C)またはカット(Ctrl+X)して他のセルに貼り付け(Ctrl+V後にESCまたはEnter) これと同じ動作をするVBAになります。コピーする場合 A1セルをB1セルにコピー貼り付けする場合 Range("A1").Copy …
第41回.セルのコピー&値の貼り付け(PasteSpecial)
値の貼り付けと題しましたが値だけではなく「形式を選択して貼り付け」のいろいろな指定方法です。セルをコピーして他のセルに「形式を選択して貼り付け」する場合のVBAコードになります。Range.PasteSpecial(Paste,Operation,SkipBlanks,Transpose) 名前 指定値 説明 Paste xlPasteAll すべてを貼…
第42回.セルをコピーするとは
セルをコピーするとは、どういう事でしょうか、セルをコピーするという事を少し掘り下げて考えることで、より実践的なマクロVBAコードを書くことが出来るようになります。セルは、Rangeオブジェクトです、オブジェクトそのものは、コピーできません、では、何をコピーしているのでしょぅか。
第44回.VBA関数について
ワークシートに関数があるように、マクロにも専用の関数が用意されています、このマクロ専用の関数をVBA関数と呼んだりします。また、マクロでは、VBA関数だけでなく、ワークシート関数も使えますが、それは、WorkSheetFunctionクラスを使うもので、これについては後々に説明いたします。
第45回.VBA関数(Format)
VBAのFormat関数は、指定した書式に変換した文字列を返す関数で、ワークシートのTEXT関数と同様の機能になります。VBAのFormat関数は、非常に使用頻度の高い関数であり、マクロVBAにおいては必須習得関数です。Format関数はしっかと使えるようにしておきましょう。
第46回.VBA関数(日付,DateAdd)
データ型の中でも、日付時刻はかなり特殊であり、関数の使用は必要不可欠になります。ここでは、日付に関するVBA関数の一覧と、DateAdd関数について解説します。DateAdd関数以外の他の関数は、一覧のリンクより個別のページを参照して下さい。
第47回.VBA関数(文字列操作,Replace,InStr,StrConv)
文字列操作は、プログラミングする上で必須です、データ整形、データクレンジング、データクリーニング、これらを行うVBAにおいて不可欠なものが、文字列操作関数です。ここでは、文字列操作に関するVBA関数の一覧と Replace関数、InStr関数、StrConv関数について解説します。
第48回.VBA関数(その他,Fix,Int,Rnd,Round,IsEmpty)
日付関数、文字列操作関数以外で、マクロにてぜひ押さえておいてほしい関数の一覧です。一覧と、その中から一部解説しておきます。全てのVBA関数一覧は、VBA関数一覧VBA関数の一覧と解説ですどんな関数があるかは一度は確認しておくとをお勧めいたします。
第49回.Like演算子とワイルドカード
文字列比較において、部分一致の比較時に使うのが、Like演算子です。Like演算子は、ワイルドカードを使って2つの文字列の比較を行います。Like演算子 result=stringLikepattern result 必ず指定します。
第58回.コレクションとは
同種のオブジェクトを複数まとめたものを「コレクション」と呼びますコレクションもオブジェクトの一種です。例えばWorkbookオブジェクトが複数まとまったものは「Workbooksコレクション」Worksheetオブジェクトが複数まとまったものは「Worksheetsコレクション」オブジェクト名が単数形であるのに対し
第59回.コレクション処理(For Each)
ForEachは、コレクションの各要素に対して繰り返し処理を実行します、コレクションはオブジェクトの集まりですので、ForEachは、コレクションの中から、個別のオブジェクトを取り出して処理する場合に使用します。コレクションの全ての要素に対し処理を行うと、ループは終了します。
第65回.シートの追加、名前の変更(Add,Name)
VBAでシートを新規追加したり名前を変更する場合の説明ですシートを挿入すれば大抵の場合はシート名も変更することになります。シートの挿入 Sheets.AddメソッドWorksheets.Addメソッド Sheets.AddBefore,After,Count, Type またはWorksheets.AddBefore,
第66回.シートのコピー・移動・削除(Copy,Move,Delete)
シートをコピーや移動したりまた削除する場合の説明ですVBAでは雛形シートをコピーして使ったり不要なシートを削除することは頻繁にあります。シートのコピー・移動にはWorksheet.CopyメソッドWorksheet.Moveメソッド これらWorkSheetオブジェクトのメソッドを使用します。
第82回.Rangeのプロパティ(Resize)
Resizeプロパティは指定されたセル範囲(Rangeオブジェクト)のサイズを変更しますサイズが変更されたセル範囲(Rangeオブジェクト)を返します。サイズ変更は縦方向の行数横方向の列数の両方またはどちらか一方を指定できます。Resizeプロパティ Range.Resize(RowSize,
第83回.Rangeのプロパティ(Offset)
Offsetプロパティは指定されたセル範囲(Rangeオブジェクト)をオフセット(移動)しますオフセット(移動)したセル範囲を表すRangeオブジェクトを返します。Offsetとは「差し引きする」意味ですがOffsetプロパティで取得されるのは元のRange範囲を指定行数・列数移動したRange範囲になります。
第87回.WorksheetFunction(ワークシート関数を使う)
VBA関数以外にExcelワークシート関数をVBAで使うことが出来ますワークシート関数はVBA関数よりはるかに多くの関数があります。ワークシート関数を使う事でVBAコードを非常に簡潔に記述することが出来る場合が多いです。この為にも基本的なワークシート関数は必ず使えるようにしておいてください。
第88回.並べ替え(Sort)
並べ替えは、データ処理の基本中の基本です、乱雑なデータを並べ替えることは、データ処理の第一歩です。並べ替えは、Excel2007から大きく変わってしまいましたので、Excel2003までの並べ替えと、Excel2007以降の並べ替えの両方を紹介します。
第89回.オートフィルタ(AutoFilter)
オートフィルタはExcelのデータベースとしての非常に強力な機能を提供してくれていますVBAで必要なデータだけに絞り込んで他のシートにコピーしたり不要なデータを一括で削除したりする場合はとても高速に処理することができます。VBAでオートフィルタを適用したり解除したりする場合にはRangeオブジェクトのAutoFilterメソッドを使用します。
第92回.名前定義(Names)
名前定義をマクロVBAで扱う場合の解説になります、名前定義は、複数セル範囲や単一セル範囲に対して名前を付けることで、そのセル範囲を参照する時に名前で参照できるようにするものです。名前で参照できることで、セル位置(行位置、列位置)を固定値でしなくて済むようになります。
第95回.ハイパーリンク(Hyperlink)
VBAでハイパーリンクを追加したり削除したりする場合の解説ですハイパーリンクはHyperlinkオブジェクトですそしてHyperlinkオブジェクトの集まりであるコレクションがHyperlinksコレクションになります。以下の説明や使用例を読む時コレクションとオブジェクトが分かりずらいかもしれません。
第105回.Callステートメント
プロシージャーの中で他のプロシージャーを呼び出すときに使いますSubプロシージャーやFunctionプロシーシ゜ャーに制御を渡すステートメントです。プロシージャーは適切な機能単位で作ります適切な機能単位で作られたプロシージャーを他のプロシージャーで使う時にCallステートメントで呼び出します。
第106回.Functionプロシージャー
プログラム内で特定の作業を実行し値を返すプロシージャですつまりFunctionプロシージャで独自の関数をつくれるということですSubプロシードャーとの違いは値を返すか返さないかの違いです。Functionプロシージャは値を返します Subプロシージャは値を返さないFunctionプロシージャは
第107回.プロシージャーの引数
SubプロシージャーFunctionプロシージャーにおける引数リストの指定について説明します引数は呼び出し先のプロシージャーに渡すデータを指定するものです。Callステートメントでプロシージャーを呼び出すときに指定する引数を呼び出される側のプロシージャーで受け取る記述についての説明になります。

厳選30回にしました。
抜かした回もできれば順に読んでほしいですが、
さすがに128回もあるので、まずはこの30回を先に読んでください。


ここまで習得出来れば、ほとんどのマクロ作成で困ることはないはずです。
特殊な処理で困ったときは、ググってください。
恐らく結構な頻度で、当サイトも表示されるはずです。

このシリーズをお読みくださった方々が、
マクロを自由自在に書けるようになることを祈念して、
本シリーズの終わりの言葉といたします。




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

全てのシートに同じ事をする(For~Worksheets.Count)
ファイル一覧を取得する(Do~LoopとDir関数)
複数ブックよりデータを集める
複数のプロシージャーを連続で動かす(Callステートメント)
マクロの呪文を追加してボタンに登録(ScreenUpdating)
月別ブックより部署別シートに担当別に集計するNo1
月別ブックより部署別シートに担当別に集計するNo2
月別ブックより部署別シートに担当別に集計するNo3
月別ブックより部署別シートに担当別に集計するNo4
月別ブックより部署別シートに担当別に集計するNo5
今後の覚えるべきことについて

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

Withステートメントの実行速度と注意点|VBA技術解説(6月6日)
VBA+SeleniumBasicで検索順位チェッカー(改)|VBA技術解説(6月2日)
マクロでShift_JIS文字コードか判定する|VBA技術解説(6月1日)
Shift_JISのテキストファイルをUTF-8に一括変換|VBAサンプル集(5月31日)
「VBAによる解析シリーズその2 カッコ」をやってみた|エクセル(5月21日)
VBA+SeleniumBasicで検索順位チェッカー作成|VBA技術解説(5月18日)
テーブル操作のVBAコード(ListObject)|VBA入門(5月12日)
テーブル操作の概要(ListObject)|VBA入門(5月12日)
VBAのスクレイピングを簡単楽にしてくれるSelenium|VBA技術解説(5月6日)
Excelワークシート関数一覧(2010以降)|VBAリファレンス(4月22日)

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

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



  • >
  • >
  • >
  • 今後の覚えるべきことについて

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


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






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

    本文下部へ