エクセルの神髄
VBA入門:Excelのマクロを基礎から学習

ExcelマクロVBAの基本と応用、初級・初心者向け解説です
最終更新日:2022-11-21

VBA入門:Excelのマクロを基礎から学習


Excel VBA 入門 エクセル マクロ

マクロVBA入門シリーズでは、ExcelマクロVBAを実務で自在に使いこなし業務を効率化できるようになることを目的として、始めはより詳しく丁寧に解説しつつ少しずつ難易度を上げることで無理なく学習を進められるようにしています。


VBAExcelの操作を自動化するマクロ機能で使われているプログラミング言語です。
Visual Basic for Applications」の略になります。
つまり、Excelにある「マクロ機能」の中身が、プログラミング言語である「VBA」で記述されているという事です。

以下で表示している回数はWEB公開順になります。それとは別に学習順で目次を並べ替えている箇所があります。

VBA入門のページ内目次


VBA学習の進め方について

初級・初心者の方の入門としては、まずは最初から軽く通読するようにして下さい。
理解できない部分があっても、細部にこだわらず時には先に進んでください。
先に進むことで、以前は理解できなかったことが理解できるようになっている場合もあります。
折に触れて復習することで、いつの間にか理解が進んでいることを実感できるはずです。

中・上級者の方は、目次から必要な項目をご覧ください。

マクロVBA自体はOffice製品に広く搭載されています。
Word、PowerPoint、Access、OutLook等々でマクロVBAは動作します。
ただし、この「VBA入門」ではエクセルのマクロVBAのみ扱っていきます。

マクロVBAをやるにあたっては、エクセル全般(シート関数含む)の知識はある程度備わっているものとして進めています。
エクセル全般(シート関数含む)の知識に不安がある場合は、こちらを先にご覧ください。
エクセル入門
・0からのエクセル入門 ・ショートカットキー ・基本操作 ・表示形式 ・セルの書式設定 ・入力規則 ・数式・関数 ・スピルと新関数 ・LAMBDA以降に追加された関数 ・・・ Excel2021では使用できません
ここの内容をある程度理解してからマクロを始めた方が、VBAの学習はスムーズに進みます。
ただし、エクセルの機能関数で解らない部分があっても、その機能関数に関するVBA学習の時点で学習しても問題ありません。

VBAの学習順序としては、以下のページも参考にしてください。
VBA学習のロードマップ
ExcelマクロVBAの基礎を学習する方法
ExcelマクロVBAの基礎を学習する方法、マスターする道順についてです。ExcelマクロVBAは非常に便利です、手作業では、数時間・数日かかる処理が、ほんの一瞬で処理できてしまいます。ただし、マクロVBAを書く為に、相応の時間はかかりますが、それでも、そのマクロVBAを書く時間は一度きりです。
とにかく実戦を通して素早く身に付けたい人は、こちらから始めると良いでしょう。
Excelマクロ再入門
・準備:VBA再入門 ・セルを扱う:VBA再入門 ・エクセルの便利機能:VBA再入門 ・ブック・シートを扱う:VBA再入門 ・マクロ全体を最適化する:VBA再入門 ・自動化への道:VBA再入門 ・最後に:VBA再入門 ・VBAエキスパートを受験する人は
ツイッターでお勧めしているお勧めの学習コース
【VBA学習のお勧めコース】
・【VBA学習のお勧めコース その1】 ・【VBA学習のお勧めコース その2】 ・【VBA学習のお勧めコース その3】 ・【VBA学習のお勧めコース その4】 ・【VBA学習のお勧めコース その5】 ・【VBA学習のお勧めコース その6】 ・【VBA学習のお勧めコース その7】 ・【VBA学習のお勧めコース】

「1. VBAの基礎・基本:VBA入門 」の記事(1回~66回)については、以下で抜粋要約したページを作成しました。
さっと読み進めたい場合にご利用ください。
ただし、より正確に詳細を把握したい場合は本来の記事ページをお読みください。
VBA入門:VBAの基礎・基本の要約
・目次 ・第1回.マクロって何?VBAって何? ・第2回.まずはマクロVBAを使う準備 ・第3回.マクロの記録 ・第4回.マクロはどこに書くの(VBEの起動) ・第5回.VBEのオプション設定(OptionExplicit) ・第6回.とにかく書いてみよう(Sub,EndSub) ・プロシージャーについて ・第7回.マクロを実行するには(F5) ・ワークシートで実行 ・第8回.セルに文字を入れるとは(RangeオブジェクトのValueプロパティ) ・オブジェクトとは、プロパティとは ・セルに文字を入れるとは ・第9回.Rangeでのセルの指定方法 ・第10回.Range以外の指定方法(Cells,Rows,Columns) ・Columns(列番号) ・第11回.RangeとCellsの使い方 ・第38…


1. VBAの基礎・基本:VBA入門

まずは、入門としての基礎・基本からです。
ExcelマクロVBAが初めての方にも分かるようになるべく平易に詳しく解説しました。

1-1. マクロとは、VBAとは

第1回.マクロって何?VBAって何?
・マクロとは ・VBAとは ・マクロVBA学習の必要性 ・VBAでできる事 ・マクロVBA学習の前提知識 ・マクロVBAの学習の手引き(VBA学習順序)
第2回.まずはマクロVBAを使う準備
・Excel2003以前 ・Excel2007での「開発」タブ表示 ・Excel2010以降での「開発」タブ表示
第3回.マクロの記録
・マクロ記録の限界 ・「マクロの記録」の操作方法 ・個人用マクロブック ・VBAでの書き方が分からない時に調べる方法
第4回.マクロはどこに書くの(VBEの起動)
・「Visual Basic Editor」の表示方法 ・標準モジュールの挿入 ・「Module1」の名称変更 ・「Module1」の削除
第5回.VBEのオプション設定(Option Explicit)
マクロを書き始める前に、出来れば設定しておいた方が良いオプションがあります。いえ、絶対に設定しておかなければならないVBEのオプション設定です、必ず最初に設定しておいてください。VBEの「ツール」→「オプション」以下の画面が出ます。
第6回.とにかく書いてみよう(Sub,End Sub)
それでは、とにかくマクロVBAを書いてみましょう。VBEで実際にマクロを書いてみましょう VBE(VisualBasicEditor)に標準モジュールを追加したら、そこにマクロを書いていきます。sub練習1 と入力し、Enterして下さい、このように、subがSubと先頭が大文字になり、後ろに()が付きます。
第7回.マクロを実行するには(F5)
・VBEの画面で実行 ・ワークシートの開発タブで実行 ・ボタンや図形に登録して実行 ・マクロを実行すると

1-2. RangeとCells

第8回.セルに文字を入れるとは(RangeオブジェクトのValueプロパティ)
・前回書いたVBAコード ・セル番地ついて ・= 記号について ・値はValue ・オブジェクトとは、プロパティとは ・セルに文字を入れるとは
第9回.Rangeでのセルの指定方法
・複数のセル(矩形のセル範囲) ・列全体 ・行全体 ・名前定義のセル範囲 ・特殊な指定方法 ・マクロVBAで良く使う書き方
第10回.Range以外の指定方法(Cells,Rows,Columns)
・Cells(行番号, 列番号) ・Rows(行番号) ・Columns(列番号) ・RangeとCellsの関連記事
第11回.RangeとCellsの使い方
・RangeとCellsの基本的な使い分け方 ・固定セル(固定位置)の指定 ・Rangeに変数は使わないようにします ・1つの(VBAで位置を変化させる)セルを指定する場合 ・セル範囲(複数セル)を指定する場合 ・複数行全体、複数列全体の指定 ・RangeとCellsの使い分け方のまとめ ・RangeとCellsの基本の関連記事 ・RangeとCellsの応用の関連記事
第38回.セルに計算式を設定(Formula) … 公開順から学習順に変更しています
・計算式を設定できるプロパティ ・Valueプロパティ ・Formulaプロパティ , FormulaLocalプロパティ ・FormulaR1C1プロパティ , FormulaR1C1Localプロパティ ・R1C1参照形式 ・Localが付くプロパティについて ・それぞれの違い(Localは除く) ・何故、こんなに多くのプロパティが存在しているのか ・R1C1形式を使うメリット ・たった1行のVBAで複数のセルに計算式を入れる

1-3. 変数と繰り返し処理

第12回.変数宣言のDimとデータ型
・データ型 ・変数の使い方 ・変数名の規則 ・良く使われる変数名 ・自動型変換、暗黙の型変換 ・変数宣言の必要性 ・Dim変数宣言のまとめ
第13回.定数宣言のConstと型宣言文字
・Const定数の基本 ・変数でも同じ事が出来るが・・・ ・ダブルクォーテーションについて ・型宣言文字 ・Constにデータ型を指定しない場合のデータ型 ・その他の定数 ・Const変数宣言のまとめ
第14回.文字の結合(&アンパサンド)と継続行(_アンダーバー)
あるセルの文字と、あるセルの文字をくっつけて、別のセルに表示する、よくある事例であり、頻繁に行われることです。A1セルに"abc" B1セルに"123" この時に、C1セルに"abc123"を入れるような場合のマクロVBAになります。
第15回.四則演算と注釈(コメント)
エクセルは表計算ソフトですから、計算が出来なくては話になりません。四則演算(加減剰余)は必須です。この四則演算で使う算術演算の演算子は、ワークシートの演算子と同じです。あわせて、注釈(コメント)の書き方も覚えましょう。
第16回.繰り返し処理(For Next)
・For Next ステートメント ・For Next 例文 ・For Next をステップ イン実行で目で見て確認しましょう。 ・1行置きに処理する場合 ・Exit For ・For~Nextのネスト(入れ子) ・最後に一言
第17回.繰り返し処理(Do Loop)
・Do~Loopの構文 ・条件式 ・Do Loop 例文 ・Exit Do ・Do~Loopのネスト(入れ子) ・最後に一言
第18回.最終行の取得(End,Rows.Count)
・エクセルVBAにおける最終行取得の必要性 ・.End(xlDown):Ctrl+↓ ・.End(xlUp):Ctrl+↑ ・Endプロパティの方向(↑↓←→)について ・セルの行数を取得するRowプロパティ ・Cells(Rows.Count, 1).End(xlUp).Rowを日本語に訳す ・EndプロパティがRangeオブジェクトを返す ・Endプロパティの問題点 ・最終行に関するサイト内のページ

第19回.総合練習問題1
・マクロVBA練習問題 ・シンキングタイム ・マクロVBA練習問題解答へ

1-4. If条件分岐

第20回.条件分岐(If)
・Ifステートメントの構文 ・IFステートメントの条件式 ・Ifステートメントの使用例文 ・Ifステートメントのネスト(入れ子) ・サイト内のIfステートメント参考ページ ・最後に
第21回.条件分岐(ElseIf)
前回のIFステートメントでは、真か偽の二択でした。今回は、もっと多くの分岐が必要な、Ifステートメントで多肢条件分岐の場合の書き方です。ステートメントとしては、Ifステートメントです。IfステートメントのElseIfの構文 If条件式1Then 条件式1が真の処理 [ElseIf条件式2Then 条件式2が真の処理…
第22回.条件分岐(Select Case)
・Select Caseステートメントの構文 ・Select Case の例文 ・Select Case の応用

1-5. 関数とは、引数とは

第23回.メッセージボックス(MsgBox)
・MsgBox関数の構文 ・名前付き引数 ・MsgBox関数のbuttonsの定数 ・MsgBox関数の戻り値の定数 ・MsgBox関数の例文 ・MsgBoxの使い道
第24回.インプットボックス(InputBox)
・InputBox関数の構文 ・名前付き引数 ・InputBox関数の例文
第25回.名前付き引数について
・仮引数と実引数 ・メソッドとは ・名前付き引数について ・名前付き引数の例文 ・名前付き引数の必要性

第26回.総合練習問題2
・マクロVBA練習問題 ・シンキングタイム ・マクロVBA練習問題解答へ

1-6. ブック、シート、セル

第27回.ブック・シートの選択(Select,Activate)
・アクティブ ・ブックをアクティブにする ・シートの選択、シートのアクティブ ・複数シートの選択(作業グループ化) ・複数ブックを開いている時のシート選択 ・VBAでの色々なシート指定方法
第28回.セル・行・列の選択(Select,ActivateとCurrentRegion)
・選択セルとアクティブセル ・セルの選択 ・セルをアクティブにする ・行の選択、列の選択 ・セル領域の選択 ・メソッドとはプロパティとは
第29回.セル・行・列の削除・挿入(Delete,Insert)
・セルの削除 ・セルの挿入 ・セルの削除・挿入時は、Shift:=は必ず指定 ・行・列の削除・挿入 ・行・列の削除/行・列の挿入で、Shift:=は必要か ・行・列の表示・非表示

第30回.総合練習問題3
・マクロVBA練習問題 ・シンキングタイム ・マクロVBA練習問題解答へ

1-7. セルの書式

第31回.セルの書式(表示形式,NumberFormatLocal)
・マクロでの表示書式の指定 ・表示書式指定文字 ・表示書式指定文字の調べ方 ・Range.NumberFormatについて
第32回.セルの書式(配置,Alignment)
セル内での値を表示する位置(縦位置、横位置)をマクロVBAで指定できます。「セルの書式設定」→「配置」で指定する内容です。マクロVBAでの配置の指定 Range.プロパティ=設定値 指定できるプロパティの設定値は以下になります。
第33回.セルの書式(フォント,Font)
・マクロでの指定 ・色定数 ・RGB関数 ・色の指定を解除(自動) ・フォント(Font)設定についての注意点
第34回.セルの書式(塗りつぶし,Interior)
・マクロVBAでのInterior指定 ・色定数 ・RGB関数 ・塗りつぶしなし ・条件付き書式との使い分け
第35回.セルの書式(罫線,Border)
・A1セル~B5セルに格子線を引いた時のマクロの記録 ・マクロVBAでの罫線指定 ・Bordersのプロパティ ・Range.BorderAroundメソッド ・マクロVBAでの罫線の注意点

第36回.総合練習問題4
・マクロVBA練習問題 ・シンキングタイム ・マクロVBA練習問題解答へ

1-8. 別シートにセルをコピー

第37回.ブック・シートの指定
・マクロVBAでのブック・シート指定の具体例 ・マクロVBAでのブック・シート指定の必要性 ・VBAでの色々なシート指定方法
第39回.セルのクリア(Clear,ClearContents)
・セル(Rangeオブジェクト)のクリア関係のメソッド(動作を与える) ・Range.Clear ・Range.ClearContents ・クリア関係メソッドについて
第40回.セルのコピー・カット&ペースト(Copy,Cut,Paste)
・セルをコピー(複写)する場合 ・セルを切り取る(移動する)場合 ・セル範囲のコピーについて ・別のシートにコピーする場合 ・アクティブシート以外へのコピー ・セルのコピーについてのサイト内参考ページ
第41回.セルのコピー&値の貼り付け(PasteSpecial)
・PasteSpecialメソッド ・値の貼り付け ・いろいろなコピーのVBAの書き方 ・PasteSpecialの使用例 ・最後に
第42回.セルをコピーするとは
・セルをコピーするとは ・上記方法ではコピーできないプロパティ ・.Valueのセル範囲間のコピー ・.Value以外の場合は、セル範囲をセル範囲にコピーは出来ません ・コピー方法の使い分け ・セルのコピー(Copyメソッド)実行時の注意点 ・最後に

第43回.総合練習問題5
・マクロVBA練習問題 ・シンキングタイム ・マクロVBA練習問題解答へ

1-9. VBA関数

第44回.VBA関数について
・VBA関数の書き方 ・関数の戻り値を使わない場合 ・名前付き引数 ・○○○B関数 ・○○○$関数 ・ワークシート関数との関係 ・自動メンバ表示 ・習得すべき関数 ・最後に
第45回.VBA関数(Format)
・Format関数 ・日付/時刻表示書式指定文字 ・数値表示書式指定文字 ・文字列表示書式指定文字 ・Format関数の使用例 ・※セルに出力する場合 ・最後に
第46回.VBA関数(日付,DateAdd)
・日付時刻に関するVBA関数の一覧 ・DateAdd関数の構文 ・DateAdd関数の使用例
第47回.VBA関数(文字列操作,Replace,InStr,StrConv)
・文字列操作に関するVBA関数の一覧 ・Replace関数 ・InStr関数 ・StrConv関数 ・最後に
第48回.VBA関数(その他,Fix,Int,Rnd,Round,IsEmpty)
・数学VBA関数の一覧 ・データ型確認のVBA関数一覧 ・データ型変換のVBA関数一覧
第49回.Like演算子とワイルドカード
・Like演算子 ・パターン文字列式(ワイルドカード、文字リスト、文字範囲) ・Like演算子の使用例 ・正規表現について

第50回.総合練習問題6
・マクロVBA練習問題 ・シンキングタイム ・マクロVBA練習問題解答へ

第87回.WorksheetFunction(ワークシート関数を使う) … 公開順から学習順に変更しています
・ワークシート関数の使い方 ・WorksheetFunctionで使用できる関数 ・個別の関数の使い方 ・関数の結果(戻り値) ・WorksheetFunctionの使用例. ・検索系の関数での日付の扱い ・WorksheetFunctionのエラー対処 ・最後に

1-10. オブジェクトとは、コレクションとは

オブジェクト・プロパティ・メソッドとは ・・・ VBA再入門の記事
・VBAが表示するメッセージ ・オブジェクトとは ・プロパティとは ・メソッドとは ・プロパティとメソッドの違い ・オブジェクトの階層(親子構造) ・エクセルの言葉であるVBAを日本語に翻訳する ・最終行取得のコードを訳してみる ・VBA用語を覚えることについて ・ExcelマクロVBA入門等の対応ページ

第51回.Withステートメント
・Withの構文 ・Withを使った時と使わない時の比較 ・Withの使用例 ・Withのネスト ・Withを使ったときに気を付けるべき書き方 ・Withの使いどころ ・サイト内の参考ページ
第52回.オブジェクト変数とSetステートメント
・オブジェクト変数 ・個有のオブジェクト型とは ・Setステートメント ・Setステートメントの使用例 ・WithとSetの使い分け方 ・Setステートメントの実践的な使い方 ・Is演算子によるオブジェクトの比較 ・最後に
第53回.Workbookオブジェクト
・WorkBookの指定方法 ・WorkBookのデータ型 ・WorkBookのプロパティとメソッド ・Workbookオブジェクトの使用例 ・プロパティとメソッドの違い
第54回.Windowオブジェクト
・Windowの指定方法 ・Windowオブジェクトデータ型 ・Windowオブジェクトのプロパティとメソッド ・Windowオブジェクトの解説 ・Windowオブジェクトの使用例 ・アクティブシート以外のWindowの設定
第55回.Worksheetオブジェクト
・WorkSheetオブジェクトの指定方法 ・Worksheetオブジェクトデータ型 ・WorkSheetのプロパティとメソッド ・Worksheetオブジェクトの使用方法 ・Activesheet、Sheetsコレクションについて
第56回.Rangeオブジェクト(RangeとCells)
・Rangeオブジェクトを参照するためのプロパティ ・Rangeオブジェクトを返すRangeプロパティ ・Rangeオブジェクトのデータ型 ・全てのセルを表すCells ・Rangeオブジェクトの使用例 ・RangeとCellsの使い分け方 ・VBEの自動メンバ表示(インテリセンス) ・RowsとColumns ・Rangeオブジェクトのプロパティとメソッド ・Rangeオブジェクトは難しい ・RangeとCellsの関連記事
第57回.Applicationのプロパティ(マクロ高速化と警告停止等)
・Applicationの主要プロパティ ・ScreenUpdating(マクロVBAの高速化) ・DisplayAlerts(警告停止) ・Interactive(ユーザー操作の禁止) ・Calculation(計算方法) ・StatusBar ・Cursor ・その他
第58回.コレクションとは(Collection)
・コレクションの中から単一オブジェクトを指定する場合 ・セルであるRangeオブジェクトのコレクションは? ・コレクションの要素数 ・Collectionオブジェクト
第59回.コレクション処理(For Each)
・For Each の構文 ・Exit For ・For Each の使用例 ・RangeオブジェクトのFor Each ・For Each サイト内の参考ページ

1-11. ブック・シートを安全に扱う

第60回.エラー処理(On Error)
・マクロVBAのエラー発生例 ・エラー処理のステートメント ・実行時エラー関連記事
第61回.「On Error GoTo」と「Exit Sub」
・On Error GoTo 行ラベル ・Exit Sub ・On Error の有効範囲とその動作について ・最後に
第62回.「On Error Resume Next」とErrオブジェクト
・On Error Resume Next ・Errオブジェクト ・On Error Resume Next の使用例 ・「On Error Resume Next」の最後に
第63回.ブックを開く(Open)
・Workbooks.Openメソッド ・Openメソッドの使用例 ・Openメソッドの戻り値の使い方 ・Workbooks.Addメソッド ・Openメソッドの関連記事
第64回.ブックを閉じる・保存(Close,Save,SaveAs)
・ブックを閉じる ・ブックを上書き保存 ・ブックに名前を付けて保存 ・ブックのコピーを保存 ・ブックを閉じる・保存の実践例
第65回.シートの挿入、名前の変更(Add,Name)
・シートの挿入 ・シートの名前変更 ・シート挿入、名前変更の実践例
第66回.シートのコピー・移動・削除Copy,Move,Delete)
・シートのコピー・移動 ・シートの削除
第67回.総合練習問題7
・マクロVBA練習問題 ・シンキングタイム ・マクロVBA練習問題解答へ


ここまではVBA入門として最低限の基本になります。
基本とはいえ、ここまで習得出来ればかなりExcel VBAを書けるようになっているはずです。


2. VBA入門に必要なVBEの基本的使い方

ここで、今後の学習をスムーズに進めるために、
VBE(Visual Basic Editor)の使い方と、デバッグ方法について確認しておきましょう。
VBEの使い方:VBE画面の全体説明
・メニュー ・プロジェクト ・プロパティ ・その他のウィンドウ ・VBE画面の全体説明の最後に
VBEの使い方:ツールのオプション設定
・「メニュー」→「ツール」→「オプション」 ・編集 ・エディターの設定 ・全般 ・ドッキング ・ツールのオプション設定の最後に
VBEの使い方:ツールバー
・ツールバーの表示方法 ・デバッグ ・ユーザーフォーム ・標準 ・編集 ・ユーザー設定 ・ツールバーの最後に
VBEの使い方:右クリックメニューとヘルプ
・右クリックメニュー ・(F1) ・右クリックメニューとヘルプの最後に
VBEの使い方:ショートカットキーとコード編集
・VBEショートカット一覧 ・ショートカットキーの具体的な使い方 ・コメントアウト ・ショートカットとコード編集の最後に
VBEの使い方:イミディエイト ウィンドウ
・イミディエイト ウィンドウの表示 ・イミディエイト ウィンドウの基本的な使い方 ・イミディエイト ウィンドウの高度な使い方 ・イミディエイト ウィンドウの最後に
VBEの使い方:ローカル ウィンドウ
・ローカル ウィンドウの表示 ・ローカル ウィンドウの基本的な使い方 ・ローカル ウィンドウの制限 ・ローカル ウィンドウの最後に
VBEの使い方:ウォッチ ウィンドウ
・ウォッチ ウィンドウの表示 ・ウォッチ ウィンドウとは ・「ウォッチ式の追加」の操作手順 ・ウォッチ式の追加 ・ウォッチ ウィンドウの制限と注意 ・ウォッチ ウィンドウの最後に
VBEの使い方:オブジェクト ブラウザー
・オブジェクトブラウザーの表示 ・オブジェクトブラウザーの使い方 ・クラスおよびメンバーの見方 ・オブジェクトブラウザーの最後に
VBEの使い方:デバッグ
・実行、中断、リセット(停止) ・ステップ実行 ・呼び出し履歴 ・VBA実行途中で変数の状態を確認 ・Debug.Print ・Debug.Assert ・デバッグの最後に
VBEのショートカット一覧
・VBEの使い方について ・VBE キーボード ショートカット ・VBE メニュー ショートカット


3. VBAプログラミングの基礎・基本

このあたりで、VBAプログラミングの基本を見ておくと良いでしょう。
以下はVBA入門シリーズとは別記事です。
気になるタイトルのみ拾い読みで良いでしょう。
プログラミングの基本~ロジックの組み立て
・前処理、主処理、後処理 ・VBAでの3ステップ例 ・最後にまとめ
実は奥が深いIfステートメント
プログラムと言うものは、条件により処理を分ける。これにつきます。つまり、この条件が一番問題となります。そして、その記述をするものが、Ifステートメントになります。IFステートメントの基本 まずはIFステートメントの基本を確認しましょう。
論理積(And)論理和(Or)と真(True)偽(False)の判定
・Trueとは何か、Falseとは何か ・論理積(And) ・論理和(Or) ・Ifステートメントにおける真偽の判定 ・例.指定のフルパスがフォルダかの判定
条件式のいろいろな書き方:TrueとFalseの判定とは
If条件式の書き方で、VBAプログラムは大きく様相が変わってきます、VBAを習い始めは、比較演算子で比較した結果が 正しければTrue、間違っていればFalse という事で理解するはずです。しかし、いろいろなサンプルコードを見ていると、「あれっ」比較演算子が無い… というようなIfステートメントやSelectCas…
VBAでの括弧()の使い方、括弧が必要な場合
・基本文型 ・VBAにおける括弧() ・VBAにおける半角空白の意味 ・戻り値を他の用途に使う時 ・括弧()の使い方の基本文型 ・Callを省略しなければ全て括弧が必要になる ・最後に一言
VBAにおけるピリオドとカンマとスペースの使い方
VBAの文法の中で、初心者が戸惑うことが多いのが、ピリオド、カンマ、スペース これらの使い方のようです。使い方を間違って、ピリオドを打つべきところにカンマを打ってしまうと、VBAコードが真っ赤になってしまいます。こうなるとビックリしてしまい、冷静に見直すことが出来なくなってしまったりします。
変数とプロシージャーの命名について
VBAを習い始めると、「変数」について学びます、変数に付ける名前を変数名と呼び、若干の規則はあるが、好きな名前を付けて良いと教わります。好きな名前って…ケイコ、ハルカ、アツコ… まあ、それでも良いけど、入れるデータが分かるような名前がよいですね、わかり易い名前を付けましょう。
文字列置換の基本と応用(Replace)
マクロVBAの処理において文字列置換は頻出の処理ですが、これに苦労している初心者の方が多いようです、そこで文字列置換の基本と応用について解説します。・文字列内の空白(半角・全角)を取り除く VBA関数のTrimは前後の空白が削除されるだけです、そこで、Replace関数を使います。
データクレンジングと名寄せ
複数の名簿を突き合わせて一つにする、いわゆる「名寄せ」名寄せを行うためには、その前にデータクレンジングを行う必要があります、データクレンジングとは、データの中から、重複の排除、誤記、表記の揺れの修正などを行い、データの品質を高めることです。データを整形して、扱いやすいデータに変換します。
ForとIfのネストこそがVBAの要点
・第1に考える事・・・大外の繰り返しを作成 ・第2に考える事・・・1支店だけを作成 ・第3に考える事・・・昨対比の判定 ・第4に考える事・・・3支店の繰り返し ・第5に考える事・・・3支店の繰り返しを全体の中に組み込む ・最後に考える事・・・最後の仕上げ ・目指すべきVBAの書き順・・・VBAが上達したら
VBAを定型文で覚えよう
・サンプルVBA ・サンプルVBAの解説 ・VBAを定型文で覚えるための課題 ・VBAを定型文で覚えることの目標
For Next の使い方いろいろ
VBAの繰り返し処理としては、ForNextまたはDoLoop この二つを最初に学んだのではないでしょうか。プログラムにおける繰り返し処理は、基本中の基本です。特に使用頻度の高いForNextを重点的に学んでいることと思いますが、書き方、使い方は、いくつかのパターンがあります。
複数条件判定を行う時のコツ
・全ての条件を満たしている時 ・どれか一つでも条件を満たしている時 ・全ての条件を満たしていない時 ・条件判定に関連する記事
VBAの省略可能な記述について
・変数の宣言 ・変数宣言のデータ型 ・Application.ScreenUpdating = True : Application.DisplayAlerts = True ・Applicationのプロパティ ・Applicationのメソッド ・Range.Value ・プロシージャーのCall ・メソッドのCall ・Let ・Next 変数 ・Step 1 ・引数が無い場合の() ・名前付き引数 ・メソッドの規定値 ・組み込み列挙 ・関数のモジュール名 ・コレクションのItem ・VBAの省略可能な記述の最後に
VBAこれだけは覚えておきたい必須基本例文10
・1.最終行まで処理 ・2.後ろから逆順ループ ・3.コレクション処理 ・4.分岐処理 ・5.セルのコピー ・6.VBA関数とワークシート関数 ・7.オブジェクト変数とWith ・8.ブックを開く・閉じる ・9.ファイル一覧 ・10.テキスト読み書き ・VBA必須基本例文10を覚えた後は


4. Excel各種機能とオブジェクトの理解:VBA入門

ここからは、入門・初級から中級レベルに進むためのVBA知識の習得になります。
オブジェクト・プロパティ・メソッドといったプログラミングの専門用語が頻繁に出てきます。
・VBAが表示するメッセージ ・オブジェクトとは ・プロパティとは ・メソッドとは ・プロパティとメソッドの違い ・オブジェクトの階層(親子構造) ・エクセルの言葉であるVBAを日本語に翻訳する ・最終行取得のコードを訳してみる ・VBA用語を覚えることについて ・ExcelマクロVBA入門等の対応ページ
言葉の定義にとらわれず、一つ一つが何を意味しているのか全体像を把握するようにしてください。
また、Excelの各種機能に該当するVBAコードについては暗記する必要はありません。
必要な時に直ぐに調べられるように、一通り見ておく事が重要です。
オブジェクトを意識したVBAを書くために、まず最初に以下を読んでおいてください。
オブジェクト式について
・オブジェクト式の書き方 ・オブジェクトは直接指定できない ・オブジェクト式の書き始めは何か ・メソッドとプロパティの違いについて ・オブジェクト式の最後に
エクセルのオブジェクトはとても複雑です。
オブジェクトのどのプロパティを設定すれば望みの状態にできるかを調べるのはかなり大変です。
オブジェクトの探索方法|マクロVBA技術解説
・オブジェクト探索の説明で使う例題 ・自動記録を使ってオートシェイプの概要を知る ・ローカルウィンドウでオートシェイプのテキストを調べる ・オートシェイプの位置移動について ・VBAを完成させる ・オブジェクトブラウザーを使いさらにオブジェクトを調べる ・ウォッチウィンドウについて
VBAでは独自のプロパティを作成することもできます。
第140回.Property {Get|Let|Set} ステートメント
・そもそもプロパティとは ・VBAでプロパティを作成するステートメント ・Property {Get|Let|Set} ステートメントの構文 ・Propertyプロシージャの使用例 ・Propertyプロシージャの実践例

4-1. シートを壊さない為に

第68回.シートの保護、ブックの保護(Protect)
・シートの保護 ・シートの保護解除 ・シート保護・解除の実践例 ・ブックの保護 ・ブックの保護解除 ・最後に
第69回.シートの非表示(Visible,Hidden)
ユーザーが操作・閲覧する必要のないシートは非表示にする事で使い易いExcelブックにします。マスタ情報やマクロでのみ使用するデータが入っているシート等、通常は使用者が変更することがなく、見る必要もないのであれば、シート保護をするより非表示にしてしまった方が、ユーザーにとっては使いやすいブックとなります。
第70回.ウィンド枠の固定(FreezePanes)
ウィンドウ枠を固定し、行の上部や列の左側がスクロールされないようにする場合のマクロVBA解説になります。ワークシートの行の上部や列の左側は、通常は見出しとして使う事が多くなります。ウィンドウ枠を固定することで見出しの行や列を固定し、スクロールしても見出しが表示されたままにする場合が多くなります。

4-2. 印刷ページ設定

第71回.印刷(PrintOut)
・PrintOutメソッド ・PrintOutメソッドの使用例 ・印刷時にプリンターを選択したい場合 ・印刷総ページ数の取得 ・間違った印刷を大量に行わないわない為には
第72回.印刷プレビュー(PrintPreview)
・PrintPreviewメソッド ・PrintOutメソッドの使用 ・PrintPreviewメソッドとPrintOutメソッドの使い分け
第139回.エクスポート(PDF/XPS) … 後日追加
・PDFとは、XPSとは ・ExportAsFixedFormatメソッド ・PDFのオプションについて ・ExportAsFixedFormatの使用例
第73回.ページ設定(PageSetup)
・PageSetupオブジェクト ・PrintCommunicationプロパティ ・ヘッダー・フッターのプロパテの設定方法 ・余白の設定方法 ・印刷範囲の設定/クリア:PrintArea ・総ページ数:Pages.Count ・改ページの位置を設定:PageBreak ・最後に


4-3. 組み込みダイアログ

第74回.ファイルを開くダイアログ(GetOpenFilename)
・GetOpenFilenameメソッド ・GetOpenFilenameの使用例 ・GetOpenFilenameの実践例 ・GetOpenFilenameの初期フォルダーの指定 ・GetOpenFilenameの最後に
第75回.名前を付けて保存ダイアログ(GetSaveAsFilename)
・GetSaveAsFilenameメソッド ・GetSaveAsFilenameの使用例 ・GetSaveAsFilenameの実践例 ・GetSaveAsFilenameの初期フォルダーの指定 ・GetSaveAsFilenameの最後に
第76回.ファイルダイアログ(FileDialog)
・FileDialogオブジェクト ・FileDialogの実践例 ・FileDialogの最後に
第77回.組み込みダイアログ(Dialogs,xlDialogPrint)
・Application.Dialogsコレクション ・Application.Dialogオブジェクト ・印刷ダイアログの使用例 ・組み込みダイアログの最後に
第78回.総合練習問題8
・マクロVBA練習問題 ・シンキングタイム ・マクロVBA練習問題解答へ

4-4. ファイル操作Ⅰ

第79回.ファイル操作Ⅰ(Dir)
・Dir関数 ・Dir関数の使用例 ・Dir関数の実践例 ・Dir関数の制限について ・Dir関数の関連記事
第80回.ファイル操作Ⅰ(その他)
・ファイル操作で使う、ステートメントと関数 ・ファイル操作の使用例 ・ファイル操作の実践例 ・ファイル操作について
第81回.総合練習問題9
・マクロVBA練習問題 ・シンキングタイム ・マクロVBA練習問題解答へ

4-5. Rangeの必須プロパティ

第82回.RangeのResizeプロパティ
・Resizeプロパティの構文 ・Resizeの使用例 ・Resizeのまとめ
第83回.RangeのOffsetプロパティ
・Offsetプロパティの構文 ・Offsetの使用例 ・Offsetの注意点 ・Offsetのまとめ
第84回.RangeのAddressプロパティ
Addressプロパティは、セル範囲(Rangeオブジェクト)の参照範囲を表す文字列の値を返します。引数により、参照方法($の付いた絶対参照)や形式(R1C1形式)を指定できます。Addressは、マクロVBAの中で処理の一環として使う事はあまり多くないかもしれませんが、VBA作成過程ではRangeオブジェクト変数…
第85回.結合セルの扱い
・セル結合に関する、メソッド・プロパティ ・セル結合のマクロVBA使用例 ・セル結合時の値消去 ・指定セル範囲に結合セルが存在するか判定するマクロVBA ・セル結合時のOffsetとResizeの注意点

第86回.総合練習問題10
・マクロVBA練習問題 ・シンキングタイム ・マクロVBA練習問題解答へ

4-6. エクセルの機能を使い倒す

第88回.並べ替え(Sort)
・Range.Sortメソッド・・・Excel2003までのソート ・2007以降の並べ替え ・Excel2003までのSortとExcel2007以降のSortの使い分け
第89回.オートフィルター(AutoFilter)
・Range.AutoFilterメソッド ・AutoFilterModeプロパティ ・AutoFilterオブジェクト ・オートフィルタのVBA使用例 ・日付のフィルタ ・オートフィルタまとめ
第90回.フィルターオプションの設定(AdvancedFilter)
・フィルター詳細設定の使い方 ・Range.AdvancedFilter メソッド ・フィルターオプションの設定の関連記事
第91回.条件付き書式(FormatCondition)
・FormatConditionsコレクション ・FormatConditionオブジェクト ・条件付き書式のマクロVBA実践例 ・マクロVBAの条件付き書式について
第126回.入力規則(Validation) ・・・ 後日追加
・Validationオブジェクト ・入力規則(Validation)の使用例 ・入力規則を設定しても無効データが入力されてしまう場合への対処
第92回.名前定義(Names)
・Namesコレクション ・Nameオブジェクト ・RangeオブジェクトのNameプロパティ ・名前定義を使ったRangeの書き方 ・シートコピー時は名前定義に注意 ・名前定義の実践例
第93回.ピボットテーブル(PivotTable)
・ピボットテーブル(PivotTable)を構成するオブジェクト群 ・Excel2010のピボットテーブル(PivotTable)のマクロ記録 ・Excel2003のピボットテーブル(PivotTable)のマクロ記録 ・Excel2010とExcel2003のピボットテーブルVBAの違いについて ・ピボットテーブル(PivotTable)のマクロVBA実践例
第94回.コメント(Comment)
・コメント(Comment)に関する各種オブジェクト ・コメント(Comment)の挿入 ・コメント(Comment)の削除 ・コメント(Comment)の編集 ・コメント(Comment)実践例
第95回.ハイパーリンク(Hyperlink)
・Hyperlinksコレクション ・Hyperlinkオブジェクト ・ハイパーリンクの追加 ・ハイパーリンクの削除 ・既に設定されているハイパーリンクの扱い方
第96回.グラフ(Chart)
・グラフ(Chart)関連のオブジェクト群 ・単純な棒グラフの作成 ・2軸グラフの作成と、グラフタイトルをA1セルにリンク ・マクロVBAでのグラフの扱いについて
第97回.図形オートシェイプ(Shape)
・図形オートシェイプ(Shape)関連のオブジェクト群 ・図形オートシェイプ(Shape)の追加 ・図形オートシェイプ(Shape)の削除 ・図形オートシェイプ(Shape)の編集 ・図形オートシェイプ(Shape)の全選択 ・図形オートシェイプ(Shape)の扱い方を工夫する ・オートシェイプ(Shape)を扱う実践例 ・図形オートシェイプ(Shape)に関連する記事
第136回.フォームコントロール ・・・ 後日追加
・フォームコントロールを追加する ・フォームコントロールを削除/編集/情報取得 ・フォームコントロールを特定する方法 ・フォームコントロールの最後に
第137回.ActiveXコントロール ・・・ 後日追加
・ActiveXコントロールを追加する ・ActiveXコントロールを削除/編集 ・ActiveXコントロールの設定/情報取得 ・イベントプロシージャーの作成 ・ActiveXコントロールの最後に
第98回.Findメソッド(Find,FindNext,FindPrevious)
・Findメソッド ・FindNext メソッド ・FindPrevioust メソッド ・Application.FindFormatメソッド ・FindメソッドとFindNextメソッドの実戦例
第99回.Replaceメソッド(置換)
・Replaceメソッド の構文 ・Replaceメソッドの注意点 ・Replaceメソッドの使用例 ・ReplaceメソッドとReplace関数の使い分け
第132回.その他のExcel機能(グループ化、重複の削除、オートフィル等) ・・・ 後日追加
・マクロの記録 ・グループ化 ・重複の削除 ・オートフィル ・連続データの作成 ・その他のExcel機能
第135回.ジャンプの選択オプション(SpecialCells) ・・・ 後日追加
・ジャンプの選択オプションとは ・RangeオブジェクトのSpecialCellsメソッド ・SpecialCellsの使用例
第141回.行・列の表示・非表示・列幅・行高
・セルの非表示 ・行の表示・非表示 ・列の表示・非表示 ・セルが表示されているか(可視セルか)の判定方法 ・列幅・行高

4-7. プロシージャー分割

プロシージャーを適切な機能単位で分割し部品化します。
複数の部品を使い全体を組み立てていきます。

第105回.Callステートメント
・Callステートメント ・Callステートメントの使用例 ・同じことは2度書かない ・プロシージャーの分割について
第106回.Functionプロシージャー
プログラム(マクロVBA)内で特定の処理を実行し値を返すプロシージャーです。これはつまり、Functionプロシージャーで独自の関数をつくれるということです。Subプロシージャーとの違いは、値を返すか返さないかの違いです。
第107回.プロシージャーの引数
・引数の構文 ・引数の使用例 ・引数について
第108回.変数の適用範囲(スコープ,Private,Public)
・プロシージャーレベル変数 ・・・ プロシージャー内でのみ使用可能 ・モジュールレベル変数 ・・・ モジュール内でのみ使用可能 ・パブリック変数 ・・・ 全てのモジュールの全てのプロシージャーで使用可能 ・変数の適用範囲について簡単にまとめてると ・定数(Const)の適用範囲について ・変数の重複について ・変数は、極力狭いスコープで使う事が望ましいとされます。

ここまでが、VBAで業務を自動化する上での必須になります。
自動化したいことのほとんどは、ここまでで実現できるはずです。

復習をかねて練習問題に取り組んでみましょう。
ExcelマクロVBA練習問題
・マクロVBA練習問題 ・マクロVBA入門の総合練習問題 ・ツイッター出題のエクセル問題 ・マクロVBA練習問題解答へ


5. VBA初級からVBA中級を目指して

ここからは、必要になった時に一つずつ覚えて行ってください。
VBA習得としては、既に入門を脱して次の段階に入っています。
すぐに理解できなくても構いませんので、VBAスキルアップに必要なものとして取り組んでください。

5-1. Applicationの便利メソッド

第100回.InputBoxメソッド(インプットボックス)
・InputBoxメソッド ・InputBoxメソッドの使用例 ・最後に
第101回.Midステートメント
・Midステートメント ・MidBステートメント ・Midステートメントの使用例 ・Midステートメントの必要性 ・実践での使用例
第102回.Intersectメソッド
・Intersectメソッド ・Intersectの使用例 ・Intersectメソッドの最後に
第103回.UnionメソッドとAreasプロパティ
・Unionメソッド ・Areasプロパティ ・Unionメソッドで連結した結果のRangeオブジェクトの状態について ・Unionメソッドの使用例 ・Unionメソッドの実践例
第104回.GetPhoneticメソッドとSetPhoneticメソッド(フリガナ)
・GetPhoneticメソッド ・GetPhoneticメソッドの使用例 ・SetPhoneticメソッド ・SetPhoneticメソッドの使用例

5-2. Enum、Type、配列

第109回.列挙型(列挙体)Enum
・Enumステートメント ・列挙型(Enumステートメント)の使用例 ・列挙型(Enumステートメント)の活用について
第110回.ユーザー定義型・構造体(Type)
・Typeステートメントの構文 ・ユーザー定義型の使い方 ・ユーザー定義型の使用例 ・ユーザー定義型の制限 ・最後に
第111回.静的配列
・配列とは ・静的配列と動的配列 ・配列の宣言 ・多次元配列 ・要素の下限の変更 ・配列について
第112回.動的配列(ReDim)
・ReDimステートメント ・要素数の変更について ・配列について
第113回.配列に関連する関数
・LBound関数とUBound 関数 ・Array関数 ・IsArray 関数 ・Join関数 ・Filter関数 ・Eraseステートメント
第114回.セル範囲⇔配列(マクロVBA高速化必須テクニック)
・セル範囲⇔配列の基本VBA ・使用例 ・配列およびマクロVBAの高速化に関するページ
第115回.Split関数
・Split関数 ・区切り文字が文字列式内に存在しない場合 ・空文字("")をSplitした場合 ・Split関数の使用例

5-3. ファイル操作Ⅱ

第116回.ファイル操作Ⅱ(OpenとClose)
・Openステートメント ・Closeステートメント ・OpenステートメントとCloseステートメントの使用例
第117回.ファイル操作Ⅱ(Line Input #)
・Line Input # ステートメント ・EOF関数 ・Line Input # ステートメント と EOF関数の使用例.
第118回.ファイル操作Ⅱ(Print #)
VBAでファイル(CSV等)を扱う時は、最初に、ファイルを開き、その後に、読込み書込みを行い、最後に、ファイルを閉じます。ファイルを書き込む時には、Print#ステートメントを使います。Print#ステートメント シーケンシャル出力モード(OutputまたはAppend)で開いたファイルにデータを書き込むファイル入…
第119回.ファイルシステムオブジェクト(FileSystemObject)
・FileSystemObjectオブジェクトの使用方法 ・FileSystemObjectオブジェクトのプロパティとメソッド ・FileSystemObjectオブジェクトのメソッドの戻り値 ・FileSystemObjectオブジェクトの使用例 ・FileSystemObjectオブジェクトの関連記事と実践例

5-4. VBA拡張機能

第120回.OnTimeメソッド
・OnTimeメソッドの構文 ・OnTimeメソッドの使用例 ・OnTimeメソッドの実践例
第121回.SendKeysメソッド
・SendKeysメソッド ・特殊なキーを表す文字 ・AppActivateステートメント ・SendkeysとAppActivateの使用例 ・Sendkeysでは送信できないキーコード ・NumLockが解除されてしまう問題 ・Sendkeysについて
第122回.Shell関数
・Shell関数の構文 ・Shell関数の使用例 ・起動したアプリの終了を待つ同期処理
第123回.APIについて(Win32API)
・Declare ステートメン ・APIの使用例 ・いろいろなAPIについて

5-5. 外部ライブラリの利用

以下は VBA技術解説の記事ですが、合わせて学習しておくとよいでしょう。
事前バインディングと遅延バインディング(実行時バインディング)
・バインディングとは ・事前バインディング ・遅延バインディング(実行時バインディング) ・実装(VBA記述)の違い ・事前バインディングの利点
参照設定、CreateObject、オブジェクト式の一覧
VBAでエクセル外のオブジェクトを使うときには、事前バインディングと遅延バインディング(実行時バインディング)の2通りがあります、この時それぞれ何を指定したらよいのか、指定する文字列が長いので結構探してしまうことが度々あります。そこで、自身の覚え書きとしての意味も含めて、参照設定、CreateObjectのclas…
VBAで正規表現を利用する(RegExp)
・メタ文字 ・正規表現 ・正規表現RegExpの使い方 ・RegExpオブジェクト ・RegExpの使用例 ・RegExp関連のオブジェクト ・Execute(Matches,Match,SubMatches)の使用例 ・Replaceの使用例 ・先読み:肯定先読み、否定先読み ・正規表現の実践例
Dictionary(ディクショナリー)連想配列の使い方について
・Dictionaryを使って重複を除く ・Dictionaryの使い方その2 ・Dictionaryの使い方その3 ・Dictionaryの使い方サンプル ・サイト内のDictionary関連記事
Dictionary(ディクショナリー)のパフォーマンスについて
・Dictionaryの検証に使うシート ・ユニーク化(重複削除)の方法について ・Dictionaryでユニーク化1 ・Dictionaryでユニーク化2 ・Dictionaryでユニーク化3 ・Dictionaryでユニーク化4 ・最初のVBAはなぜ遅かったのか ・Dictionaryを使わない方法 ・サイト内の関連ページ


6. VBA入門の後日追加記事

一度完結したのですが、ここまでで漏れている内容がありました。
そこで、他のシリーズではなく、ここに記載しておいた方が良いと思うものを追加しました。
抜け番は、本来の章の位置に入れています。

6-1. イベント

第124回.Workbookのイベントプロシージャー
・Workbookのイベント一覧 ・イベントプロシージャー追加のVBE操作 ・Workbook_Open:Workbookのイベント ・Workbook_BeforeClose:Workbookのイベント ・Workbook_SheetChange:Workbookのイベント
第125回.Worksheetのイベントプロシージャー
・Worksheetのイベント ・イベントプロシージャー追加のVBE操作 ・Activate:Worksheetのイベント ・BeforeDoubleClick:Worksheetのイベント ・BeforeRightClick:Worksheetのイベント ・Change:Worksheetのイベント ・SelectionChange:Worksheetのイベント ・全てのシートまたは複数のシートに対するイベント

6-2. テーブル機能

第130回.テーブル操作の概要(ListObject)
・ListObjects コレクション ・ListObject オブジェクト ・テーブル操作のVBAコード
第131回.テーブル操作のVBAコード(ListObject,DataBodyRange)
・テーブル操作のVBAサンプル使用例 ・テーブルに設定 ・テーブルスタイル一覧 ・テーブルの存在確認 ・テーブルを範囲に変換 ・テーブルの範囲を再設定 ・テーブルのセルに値を入れる ・テーブルのセルの数式変更 ・テーブルの行・列のクリア ・テーブルの列の数式設定 ・テーブルの行挿入・削除 ・テーブルの列挿入・削除 ・テーブルのオートフィルター ・テーブルの並べ替え(ソート) ・テーブルの集計行挿入・削除・非表示 ・テーブルの右端に集計列追加 ・テーブルに新しい行列を含めない ・テーブルの使い方の基本 ・サイト内のテーブルに関するページ
第142回.テーブル全件処理とデータ最終行(ListObject,DataBodyRange)
・テーブル全件処理 ・テーブルの特定列のデータ最終行まで ・テーブルが拡張されないパターン ・サイト内のテーブルに関する他のページ

6-3. その他諸々

第127回.他のブックのマクロを実行(Runメソッド)
・Application.Runメソッド ・Application.Runの使用例 ・Application.Runの必要性
第128回.マクロをショートカットで起動(OnKeyメソッド)
マクロVBAをショートカットで起動したい時には、Application.OnKeyメソッドを使います。通常マクロはボタンや図形に登録して起動しますが、これらをクリックするにはマウス操作が必要です。Application.OnKeyメソッドを使う事でショートカットで起動できるようになります。
第129回.レジストリの操作(SaveSetting,GetSetting,GetAllSettings,DeleteSetting)
・SaveSettingステートメント ・DeleteSettingステートメント ・GetSetting関数 ・GetAllSettings関数 ・レジストリ操作の使用例 ・最後に
第133回.引数の数を可変にできるパラメーター配列(ParamArray)
・引数の構文 ・名前付き引数について ・ParamArrayキーワード(パラメーター配列)とは ・ParamArrayキーワード(パラメーター配列)の使用例 ・サイト内の関連ページ
第134回.Errオブジェクトとユーザー定義エラー
・Errオブジェクト ・Errオブジェクトのエラー情報が解除されるのは ・Err.Raiseメソッド ・Errorステートメント ・Error関数 ・CVErr関数 ・エラー番号およびエラーメッセージ ・実行時エラー関連記事
第138回.外部ライブラリ(ActiveXオブジェクト)
・事前バインディングと遅延バインディング(実行時バインディング) ・VBAで良く使われるライブラリ ・ActiveXオブジェクトの最後に
第140回.Property {Get|Let|Set} ステートメント
・そもそもプロパティとは ・VBAでプロパティを作成するステートメント ・Property {Get|Let|Set} ステートメントの構文 ・Propertyプロシージャの使用例 ・Propertyプロシージャの実践例
第143回.WorksheetFunctionの効率的な使い方とスピル新関数の利用
・WorksheetFunctionをオブジェクト変数に入れて使用する ・Functionの中でWorksheetFunctionを使う事でエラー処理を簡潔にする ・WorksheetFunctionのスピル新関数を利用する ・サイト内の関連ページ

以上で、「ExcelマクロVBA入門」は完了です。(必要があれば今後も追加しますが)
全てを暗記することは困難ですし、その必要もありません。
マクロVBA開発の実務で不明な事がでてきたら、このページを検索して復習すれば良いことです。
一度学習したことは、案外簡単に思い出せるものです。


7. VBA入門その後の学習について

7-1. 復習したい人は練習問題で確認しましょう

VBA入門の進捗にあわせて全32問を用意しています。
マクロVBA練習問題
・マクロVBA練習問題 ・マクロVBA入門の総合練習問題 ・ツイッター出題のエクセル問題 ・マクロVBA練習問題解答へ

7-2. 途中でくじけてしまった人は実践重視で

VBEでのコード入力手順から実践重視の解説です。
マクロVBA再入門
・準備:VBA再入門 ・セルを扱う:VBA再入門 ・エクセルの便利機能:VBA再入門 ・ブック・シートを扱う:VBA再入門 ・マクロ全体を最適化する:VBA再入門 ・自動化への道:VBA再入門 ・最後に:VBA再入門 ・VBAエキスパートを受験する人は

7-3. VBAエキスパートを受験する人は参考書として

VBAエキスパート試験に合格するためのVBA知識と対策です。
VBAエキスパート対策
・VBAエキスパート試験リニューアル ・本シリーズの目的 ・VBAエキスパート学習の意義 ・VBAエキスパートの種類 ・VBAエキスパート公式テキスト ・筆者が模擬問題プログラムをやってみた ・各ページ内の構成 ・VBAベーシック:VBAエキスパート対策 ・VBAスタンダード:VBAエキスパート対策 ・あとがき:VBAエキスパート対策

7-4. VBAの特訓をしたい人にはVBA100本ノック

ツイッター連動企画です。
VBA100本ノック:VBAの特訓
・VBA100本ノック目次 ・VBA100本ノック 魔球編 ・VBA100本ノック 迷宮編
ツイートでも出題しているので引用リプ等で回答すると多くの人に見てもらえるので良い刺激になると思います。
VBA100本ノック参加者ご紹介
・ツイッターの引用リツイート等で回答されている方 ・YouTubeで回答または解説されている方 ・ブログ等で回答または解説されている方

筆者の独断と偏見で、エクセルVBAのスキルに段級位をつけてみました。
それぞれの段級位における習得技術を一覧にしたものです。
何級まで進んでいるかチェックしてみると励みになると思います。
エクセルVBA 段級位 目安
ツイッターで3日間に渡って順次ツイートしたもののまとめです。筆者の独断と偏見で書いているものですし、かつ、たたき台・原案なので、変更することがあります。各級位の内容は「VBA入門」に解説ページがあります。

ここでの学習が終了したら、もうVBAのエキスパートと言ってよいでしょう。
分からない事があったら以下で調べながら自分で解決できるはずです。

7-5. VBAの不明点を調べるなら

豊富なマクロVBAのサンプルと、VBAの詳細な文法と技術解説になります。
VBAリファレンス
ExcelマクロVBAに関する各種一覧、記事の目次です。
マクロVBA技術解説
・プログラミング全般:マクロVBA技術解説 ・VBA入門編:マクロVBA技術解説 ・VBA応用編:マクロVBA技術解説 ・VBAの制限とエラー対応:マクロVBA技術解説 ・処理速度対策と配列:マクロVBA技術解説 ・イベント:マクロVBA技術解説 ・Excel Application外のオブジェクト:マクロVBA技術解説
マクロVBAサンプル集
・ブック・シート:マクロVBAサンプル集 ・いろいろ:マクロVBAサンプル集 ・配列:マクロVBAサンプル集 ・図形:マクロVBAサンプル集 ・イベント:マクロVBAサンプル集 ・CSV・ADO:マクロVBAサンプル集 ・ちょっとしたアプリ:マクロVBAサンプル集


業務で多くの人が使うのなら、よりユーザーフレンドリーな画面を作りたいものです。
VBAでは、ユーザーフォームを作ることで、より使いやすい画面にすることができます。
クラスが使えるようになると、VBAの見える世界がまた変わってきます。
本格的にVBA使いを目指すなら、VBAクラスの習得は必須です。


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

数字(1~50)を丸付き数字に変換するVBA|VBA技術解説(2022-11-15)
TEXTAFTER関数(テキストの指定文字列より後ろの部分を返す)|エクセル入門(2022-11-14)
TEXTBEFORE関数(テキストの指定文字列より前の部分を返す)|エクセル入門(2022-11-14)
TEXTSPLIT関数(列と行の区切り記号で文字列を分割)|エクセル入門(2022-11-12)
LAMBDA以降の新関数はVBAで使えるか|VBA技術解説(2022-11-11)
WRAPCOLS関数(1次元配列を指定数の列で折り返す)|エクセル入門(2022-11-08)
WRAPROWS関数(1次元配列を指定数の行で折り返す)|エクセル入門(2022-11-08)
EXPAND関数(配列を指定された行と列に拡張する)|エクセル入門(2022-11-07)
TAKE関数(配列の先頭/末尾から指定行/列数を取得)|エクセル入門(2022-11-06)
DROP関数(配列の先頭/末尾から指定行/列数を除外)|エクセル入門(2022-11-06)


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

1.最終行の取得(End,Rows.Count)|VBA入門
2.RangeとCellsの使い方|VBA入門
3.変数宣言のDimとデータ型|VBA入門
4.繰り返し処理(For Next)|VBA入門
5.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
6.Excelショートカットキー一覧|Excelリファレンス
7.並べ替え(Sort)|VBA入門
8.エクセルVBAでのシート指定方法|VBA技術解説
9.マクロって何?VBAって何?|VBA入門
10.ExcelマクロVBAの基礎を学習する方法|エクセルの神髄




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


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



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