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

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

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


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


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

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

1日2回で一か月

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

しかし
しかし
しかし

人間がある事になじむには時間が必要なのです。
一定時間を掛けなければ習得出来ないこともあります、
いいえ、何事も一定時間を掛けなければ習得できないのが普通なのです。
そして、一定時間を掛けると、なぜかそれが身体・脳になじんでくるのです。
VBAの場合は脳になじむ時間が必要です。
脳になじむ前に、次々に新しい事を覚えようと詰め込むと、かえって脳が受け付けなくなります。

マクロが難しい・覚えられないという人の多くが、この状態だと思います。
まずは、必要最低限の事を、脳になじむまで反復練習してください。
ですから、
マクロ再入門は、少なくとも2回は復習してくださいと言っているのです。
始める前とは、違ったものが見えるようになっているはずです。

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

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

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


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

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



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

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


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

Byte配列と文字コード関数について|VBA技術解説(8月20日)
PowerQueryの強力な機能をVBAから利用する方法|VBA技術解説(8月4日)
練習問題31(セル結合を解除して値を埋める)|VBA練習問題(7月30日)
練習問題30(マトリックス→リスト形式)|VBA練習問題(7月25日)
Applicationを省略できるApplicationのメソッド・プロパティ一覧|VBA技術解説(7月22日)
コレクション(Collection)の並べ替え(Sort)に対応するクラス|VBA技術解説(7月20日)
CSVの読み込み方法(ジャグ配列)|VBAサンプル集(7月15日)
その他のExcel機能(グループ化、重複の削除、オートフィル等)|VBA入門(7月14日)
オートフィルタ退避回復クラスを複数シート対応させるVBAクラス|VBA技術解説(7月6日)
オートフィルタを退避回復するVBAクラス|VBA技術解説(7月6日)


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

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.セルに文字を入れるとは(Range,Value)|VBA入門
9.ひらがな⇔カタカナの変換|エクセル基本操作
10.空白セルを正しく判定する方法(IsEmpty,IsError,HasFormula)|VBA技術解説



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

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


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




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