ExcelマクロVBAの基礎を学習する方法
ExcelマクロVBAの基礎を学習する方法、マスターする道順について。
手作業では、数時間・数日かかる処理が、ほんの一瞬で処理できてしまいます。
ただし、マクロVBAを書く為に、相応の時間はかかりますが、
それでも、そのマクロVBAを書く時間は一度きりです。
二度目からはマクロを実行するだけになります。
マクロVBAはプログラミング言語です。
言語としての文法を覚える事は必須ですし、プログラミングの技術習得も必須になります。
ただし、そんなに構える必要もなく、
エクセルには、マクロ自動記録という便利な機能もあります。
文法の勉強とマクロ自動記録をうまく使って学習を進める事もできます。
とにかく、マクロを書いて動かす事から始めます。
むしろ、このExcelマクロ再入門から始めた方がよいでしょう。
まずは、マクロを書くことに慣れてください。
第1回.マクロを書く準備をする
第2回.マクロを書いて動かす
第3回.セルに数字や文字を入れる
第4回.セルの値を使って計算する
第5回.同じ計算を行数分繰り返す
第6回.表の先頭から最終行まで繰り返す
第7回.セルの値で計算を変える
第8回.表範囲をまとめて消去する
第9回.関数という便利な道具
第10回.ワークシートの関数を使う
第11回.分からない事はエクセルに聞く
第12回.エクセルの言葉を理解する
第13回.セルのコピペ方法を知る
第14回.セルの書式を設定する
第15回.手作業で出来なければマクロは書けない
第16回.エクセルの機能を上手に使う
第17回.セルにブック・シートを指定する
第18回.シートをコピー・挿入・削除する
第19回.ブックを開く・閉じる・保存する
第20回.全てのシートに同じ事をする
第21回.ファイル一覧を取得する
第22回.複数ブックよりデータを集める
第23回.複数のプロシージャーを連続で動かす
第24回.マクロの呪文を追加してボタンに登録
第25回.月別ブックより部署別シートに担当別に集計するNo1
第26回.月別ブックより部署別シートに担当別に集計するNo2
第27回.月別ブックより部署別シートに担当別に集計するNo3
第28回.月別ブックより部署別シートに担当別に集計するNo4
第29回.月別ブックより部署別シートに担当別に集計するNo5
マクロVBAを書くことに慣れたら、再度基礎から見直してみましょう。
第2回.まずは準備
第3回.マクロの記録
第4回.マクロはどこに書くの
第5回.VBEのオプション設定
第6回.とにかく書いて見よう
第7回.マクロを実行するには
さて、基本的な使い方が分かったら、
いよいよ、文法のお勉強です。
勉強は、ちょっとつらいですけど、くじけずに続けてください。
第9回.Rangeでのセルの指定方法
第10回.Range以外の指定方法
第11回.RangeとCellsの使い方
第12回.変数宣言のDimとデータ型
第13回.定数宣言のConstと型宣言文字
第14回.文字の結合と継続行
第15回.四則演算と注釈
第16回.繰り返し処理(For)
第17回.繰り返し処理(Do)
第18回.最終行の取得
第19回.総合練習問題1
第20回.条件分岐(If)
第21回.条件分岐(ElseIf)
第22回.条件分岐(Select Case)
第23回.メッセージボックス(MsgBox)
第24回.インプットボックス(InputBox)
第25回.名前付き引数について
第26回.総合練習問題2
また、難しく、続ける自信がなくなるかもしれません。
そこで、ちょっと雰囲気を変えて、
マクロの自動記録を使ってみましょう。
第1回.マクロを記録して実行
第2回.セルに文字を入れる
第3回.複数セルに文字を入れる
第4回.連続数値を入れる
第5回.100マスに数値を入れる
第6回.別のシートにコピーする
第7回.別のシートにコピーする2
第8回.計算式を入れる
第9回.計算式をコピーする
第10回.計算結果を入れる
第11回.イミディエイトで値の確認
第12回.セルに色を塗る
第13回.罫線を引く
第14回.行列を入れ替えて張り付け
第15回.いろいろな消去
マクロの記録で覚えるVBA.第16回.行の挿入・削除
第17回.並べ替え
第18回.オートフィルタ
第19回.オートフィルタ2
第20回.ジャンプのセル選択
第21回.条件付き書式
第22回.シートの移動コピー
第23回.セルの結合
第24回.印刷
第25回.開く・保存・閉じる
第26回.最終回
実は、ここまででも、相当な事ができるのです。
ここまでのマクロVBAで、業務の大部分を自動化できます。
しかし、やはりそれでもまだまだ出来ない事も多いでしょう。
覚えるべきマクロVBAは、まだまだあります。
第28回.セル・行・列の選択(Select,ActivateとCurrentRegion)
第29回.セル・行・列の削除・挿入(Delete,Insert)
第30回.総合練習問題3
第31回.セルの書式(表示形式)
第32回.セルの書式(配置)
第33回.セルの書式(フォント)
第34回.セルの書式(塗りつぶし)
第35回.セルの書式(罫線)
第36回.総合練習問題4
第37回.ブック・シートの指定
第38回.セルに計算式を設定
第39回.セルのクリア(Clear,ClearContents)
第40回.セルのコピー・カット&ペースト(Copy,Cut,Paste)
第41回.セルのコピー&値の貼り付け(PasteSpecial)
第42回.セルをコピーするとは
第43回.総合練習問題5
第44回.VBA関数について
第45回.VBA関数(Format)
第46回.VBA関数(日付)
第47回.VBA関数(文字列操作)
第48回.VBA関数(その他)
第49回.Like演算子とワイルドカード
第50回.総合練習問題6
第87回.WorksheetFunction(ワークシート関数を使う)
今後の学習をスムーズに進めるためにVBEの使い方とデバッグについて詳しく見ておきましょう。
VBEの使い方:ツールのオプション設定
VBEの使い方:ツールバー
VBEの使い方:右クリックメニューとヘルプ
VBEの使い方:ショートカットキーとコード編集
VBEの使い方:イミディエイト ウィンドウ
VBEの使い方:ローカル ウィンドウ
VBEの使い方:ウォッチ ウィンドウ
VBEの使い方:オブジェクトブラウザ
VBEの使い方:デバッグ
コーディングとデバッグ
ここまで来れば、やりたいことを、それなりに書けるようになっているはずです。
このあたりで、プログラミングの基本を見ておくと良いでしょう。
実は奥が深いIfステートメント
論理積(And)論理和(Or)と真(True)偽(False)の判定
条件式のいろいろな書き方:TrueとFalseの判定とは
VBAでの括弧()の使い方、括弧が必要な場合
VBAにおけるピリオドとカンマとスペースの使い方
変数とプロシージャーの命名について
文字列置換の基本と応用(Replace)
データクレンジングと名寄せ
ForとIfのネストこそがVBAの要点
VBAを定型文で覚えよう
For Next の使い方いろいろ
複数条件判定を行う時のコツ
VBAの省略可能な記述について
VBAこれだけは覚えておきたい必須基本例文10
ここからは、
・VBAの便利機能
・Excelの各種機能
これらを使えるようになっていきましょう。
オブジェクトについて少しずつ理解を深めていきましょう。
ここは内容も多いので、あまりりじっくりやるより、さっと何ができるのかを知る程度に読み進めれば良いです。
第51回.Withステートメント
第52回.オブジェクト変数
第53回.Workbookオブジェクト
第54回.Windowオブジェクト
第55回.Worksheetオブジェクト
第56回.Rangeオブジェクト
第57回.Applicationのプロパティ
第58回.コレクションとは
第59回.コレクション処理(For Each)
第60回.エラー処理(On Error)
第61回.「On Error Go To」と「Exit Sub」
第62回.「On Error Resume Next」とErrオブジェクト
第63回.ブックを開く
第64回.ブックを閉じる・保存
第65回.シートの追加、名前の変更
第66回.シートのコピー・移動・削除
第67回.総合練習問題7
第68回.シートの保護
第69回.シートの非表示
第70回.ウィンド枠の固定
第71回.印刷
第72回.印刷プレビュー
第139回.エクスポート(PDF/XPS)
第73回.ページ設定
第74回.ファイルを開くダイアログ
第75回.名前を付けて保存ダイアログ
第76回.ファイルダイアログ
第77回.組み込みダイアログ
第78回.総合練習問題8
第79回.ファイル操作Ⅰ(Dir)
第80回.ファイル操作Ⅰ(その他)
第81回.総合練習問題9
第82回.RangeのResizeプロパティ
第83回.RangeのOffsetプロパティ
第84回.RangeのAddressプロパティ
第85回.結合セルの扱い
第86回.総合練習問題10
第87回.WorksheetFunction(ワークシート関数を使う)
第88回.並べ替え(Sort)
第89回.オートフィルタ(AutoFilter)
第90回.フィルタオプションの設定(AdvancedFilter)
第91回.条件付き書式(FormatCondition)
第126回.入力規則(Validation)
第92回.名前定義(Names)
第93回.ピボットテーブル(PivotTable)
第94回.コメント(Comment)
第95回.ハイパーリンク(Hyperlink)
第96回.グラフ(Chart)
第97回.図形(Shape)
第136回.フォームコントロール ・・・ 後日追加
第137回.ActiveXコントロール ・・・ 後日追加
第98回.Findメソッド
第99回.Replaceメソッド
第132回.その他のExcel機能(グループ化、重複の削除、オートフィル等)
第135回.ジャンプの選択オプション(SpecialCells)
第141回.行・列の表示・非表示(Hidden)
マクロVBA学習も大詰め、最後の仕上げとして、
まずはプロシージャー分割について学びましょう。
やはり配列についてはしっかり覚えたほうが良いでしょう。
第112回.動的配列
第113回.配列に関連する関数
第114回.セル範囲⇔配列
第115回.Split関数
配列の使い方について|VBA技術解説
VBAの配列まとめ(静的配列、動的配列)|VBA技術解説
そんな時は以下のページを参考に対処してください。
Applicationの便利メソッド
ファイル操作
VBA拡張機能
もう少しで、入門編は卒業になります。
第101回.Midステートメント
第102回.Intersectメソッド
第103回.UnionメソッドとAreasプロパティ
第104回.GetPhoneticメソッド
第109回.列挙型(列挙体)Enum
第110回.ユーザー定義型(構造体)Type
第116回.ファイル操作Ⅱ(OpenとClose)
第117回.ファイル操作Ⅱ(Line Input #)
第118回.ファイル操作Ⅱ(Print #)
第119回.ファイルシステムオブジェクト(FileSystemObject)
第130回.テーブル操作の概要(ListObject)
第131回.テーブル操作のVBAコード(ListObject)
第133回.引数の数を可変にできるパラメーター配列(ParamArray)
第134回.Errオブジェクトとユーザー定義エラー
第138回.外部ライブラリ(ActiveXオブジェクト)
第140回.Property {Get|Let|Set} ステートメント
これだけマスターすれば、マクロ使いと呼ばれるようになるでしょう。
ここまでのExcelマクロVBAの学習の復習として、
さらに学習成果の腕試しとしても、
就職・転職にも有利な資格にチャレンジしてみるのも非常に良いでしょう。
VBAの特訓をしたい人は、挑戦してみてください。
ツイッター連動企画です。
筆者の独断と偏見で、エクセルVBAのスキルに段級位をつけてみました。
それぞれの段級位における習得技術を一覧にしたものです。
さらに高度なことをしたくなったら、
Windowsのいろいろな機能を使っていくと、VBAでも色々なことができるようになります。
第121回.SendKeysメソッド
第122回.Shell関数
第123回.APIについて(Win32API)
第124回.Workbookのイベントプロシージャー
第125回.Worksheetのイベントプロシージャー
第127回.他のブックのマクロを実行(Runメソッド)
第128回.マクロをショートカットで起動(OnKeyメソッド)
第129回.レジストリの操作(SaveSetting,GetSetting,GetAllSettings,DeleteSetting)
さて、マクロVBAをやっていれば、必ずやりたくなることが出てきます。
それは、ユーザーフォームの作成です。
まさに、自分独自のアプリケーションの作成です。
第2回.フォームのプロパティ
第3回.コントロールの追加(コマンドボタン)
第4回.コントロールの位置・サイズ調整
第5回.ラベルの追加
第6回.テキストボックスの追加
第7回.テキストボックスの値をセルへ
第8回.セルの値をテキストボックスへ
第9回.標準モジュールとフォーム間のデータ受け渡しⅠ
第10回.標準モジュールとフォーム間のデータ受け渡しⅡ
第11回.コンボボックス(ComboBox)の追加
第12回.リストボックス(ListBox)の追加
第13回.チェックボックス(CheckBox)の追加
第14回.オプションボタン(OptionButton)の追加
第15回.ここまでの整理
第16回.アクティブコントロールに色を付ける
第17回.Enterキーで次のコントロールに移動する
第18回.2段階コンボボックス
第19回.テキストボックス数値編集
第20回.テキストボックスの各種イベント
第21回.ユーザーフォームの各種イベント
第22回.コントロールの動的作成
第23回.イベントプロシージャーの共通化
ユーザーフォームが作成できれば、
ある意味何でも作れるようになります。
もう、ここまでくれば、後は実践で数をこなすだけです。
いろいろな難題を解決しつつスキルアップしていってください。
ユーザー定義関数でハイパーリンクのURLを取得
カラーのコード取得、256RGB⇔16進変換
時刻になったら音を鳴らして知らせる
指定文字、指定数式でジャンプ機能
「値の貼り付け」をショートカットに登録
「セルの結合」をショートカットに登録>
半角カナのみ全角カナに変換する
図をセル内に強制的に収める
図を確認しながら消していく
計算式の元となる数値定数を消去する
オートシェイプを他ブックの同じ位置に貼り付ける
全シートの画面キャプチャを取得する
Beep音で音楽
連続セル範囲の選択
1行置きにする行挿入
シートの追加・削除
シートの複数選択
複数シートの印刷
重複削除してコピー
ブックを安全確実に開く方法
ブックを閉じる
罫線を簡単に引く
マクロの開始・終了
オートフィルター(AutoFilter)
日付のオートフィルタ
印刷ダイアログを使用する
名前定義の一覧
コメントの位置を移動する
日付の検索
他ブックを開いて閉じる
円グラフの色設定
ストップウォチ(1/100秒)
重複の無いユニークなデータ作成
棒グラフ・折れ線グラフのサンプルマクロ
右クリックメニューの変更
エクセルのアイコン取得
人口ピラミッドをマクロで作成
少し特殊な技術になりますが、
CSV等のテキストデータの扱いや、
WEBデータの取得が必要になる事もあるでしょう。
CSVの読み込み方法(改)
CSVの出力(書き出し)方法
UTF-8でCSVの読み書き
ADOでマスタ付加と集計
ADOでマスタ更新
ADOでCSV読み込み
WEBデータの取得方法
この先にも、マクロVBAで出来る事は、まだまだあります。
例えば、
ここは、既にエクセルそのものではないですが、
マクロVBAでも、やる気になれば大抵の事はできるのです。
クラスやらオブジェクト指向やらという言葉に出くわします。
クラスを覚えると、VBAの書き方ががらりと変わってくるでしょう。
VBAクラスの作り方:列名の入力支援と列移動対応
VBAクラスの作り方:列名のプロパティを自動作成する
VBAクラスの作り方:独自Rangeっぽいものを作ってみた
クラスを使って他ブックのイベントを補足する
クラスとイベントとマルチプロセス並列処理
クラスとCallByNameとポリモーフィズム(多態性)
オートフィルタを退避回復するVBAクラス
オートフィルタ退避回復クラスを複数シート対応させるVBAクラス
コレクション(Collection)の並べ替え(Sort)に対応するクラス
VBAクラスのAttributeについて(既定メンバーとFor…Each)
VBAクラスを使ったイベント作成(Event,RaiseEvent,WithEvents)
これから、いや、今こそ、プログラミング技術は必須技術です。
そのプログラミングの入門としては、VBAは最適だといって良いでしょう。
入り易さ・応用のし易さ・用途の広さ
ExcelマクロVBAは使えた方が間違いなく良いです。
コンピューターなしに現代は成り立ちません。
そのコンピューターを自在に使いこなす事こそが、
プログラミングなのです。
新着記事NEW ・・・新着記事一覧を見る
TRIMRANGE関数(セル範囲をトリム:端の空白セルを除外)|エクセル入門(2024-08-30)
正規表現関数(REGEXTEST,REGEXREPLACE,REGEXEXTRACT)|エクセル入門(2024-07-02)
エクセルが起動しない、Excelが立ち上がらない|エクセル雑感(2024-04-11)
ブール型(Boolean)のis変数・フラグについて|VBA技術解説(2024-04-05)
テキストの内容によって図形を削除する|VBA技術解説(2024-04-02)
ExcelマクロVBA入門目次|エクセルの神髄(2024-03-20)
VBA10大躓きポイント(初心者が躓きやすいポイント)|VBA技術解説(2024-03-05)
テンキーのスクリーンキーボード作成|ユーザーフォーム入門(2024-02-26)
無効な前方参照か、コンパイルされていない種類への参照です。|エクセル雑感(2024-02-17)
初級脱出10問パック|VBA練習問題(2024-01-24)
アクセスランキング ・・・ ランキング一覧を見る
1.最終行の取得(End,Rows.Count)|VBA入門
2.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
3.変数宣言のDimとデータ型|VBA入門
4.繰り返し処理(For Next)|VBA入門
5.RangeとCellsの使い方|VBA入門
6.ブックを閉じる・保存(Close,Save,SaveAs)|VBA入門
7.セルのクリア(Clear,ClearContents)|VBA入門
8.メッセージボックス(MsgBox関数)|VBA入門
9.条件分岐(Select Case)|VBA入門
10.マクロとは?VBAとは?VBAでできること|VBA入門
このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
記述には細心の注意をしたつもりですが、
間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。