こんにちは。
少し前にVBAエキスパートの独学勉強法について記事にしました。
上のレベルのスタンダートを受ける時に、独自で単語帳を作っていたのですが、その時のデータが残っておりまして…
もしかしたら同じ資格を勉強する方の参考になるかもしれないと思ったので、記事にしてみたいと思います。
※記事として公開していますが、半分は自分のための記録用です。
※『自分がわかれば良い』という基準で作成されたものです。
※記載に間違いなどがある可能性があります。参考にされる場合は確認をお願い致します。
※1章と8章は単語帳を使って暗記をしていないため、ありません。
なお、主に公式テキストの内容を元に作成していますが、非公式で出されている問題集(Kindleなどで販売されているもの)の内容を元に作成しているものもあります。
(↓公式テキスト)
VBAエキスパート公式テキスト Excel VBAスタンダード 新品価格 |
第2章:変数
宣言時に要素数を指定しないことをなんというか?
また、その時の構文は?(DimとAを使って)
動的配列
Dim A() As String
ReDim
ReDim Preserveにする
Split Variant型
Split(”文字列など”,区切り文字”)
※必ずダブルクウォーテーションで囲むこと。
Set
Set 変数=~(オブジェクト)
Nothing
Set 変数=Nothing
※破棄するというのは初期値に戻ることではない。これやったらこの変数はもう使えない。エラーになる。
①LBound関数
②UBound関数
※配列の最小値・最大値がわからない時などに使う。
インクリメント
A=A+1
第3章:ステートメント
Select Case ステートメント
①カンマ
②To (●To●)
①Is
②Case Is>=100
①While
②Until
※②は「~になるまでは」と考えた方がわかりやすい。
CStr関数
※使い方:CStr(文字列)
無限ループ
Do
何らかの処理
Loop
無限ループから脱するには●●という表現を使えば良い。
またその時はどのような構文になるか?(Do 処理も記載の後)
Exit Do
If 条件 Then Exit Do
For Each …Next
For Each 変数 In グループ名
変数を使った操作
Next 変数
Selection
For Nextステートメント・・・操作するメンバーの順番が重要な場合に使う
For Each …Nextステートメント・・・順番は関係なく全てのメンバーを操作する場合に使う
①Or(または) ②And(かつ)
Exit Do
Exit For
Workbooks.Open ファイルのパス
第4章:ファイルの操作
ブックを開くには①メソッド、閉じるには②メソッドを使う。
③構文を答えよ(ブックを開く方)
①Open ②Close
③Workbooks.Open~(格納場所とファイル名が入る)
SaveAs
日付けを作る関数は?(※日付以外でも使います)
(2024年6月23日→20240623に変更するなどできるもの)
Format関数
値,の後に記載する書式記号の部分に「0」を指定する
(001や002とかなら「000」と指定すれば良い)
①FileCopy
②FileCopy コピー元のファイル,コピー先のファイル
※ファイル名が違っても良い。ただコピー先のファイルにその名前を入れれば良い。
①MkDir
②MkDir パス
ThisWorkbook
①Dir
②Dir(取得したいファイルやフォルダのパス,属性)
第5章:ワークシート関数
①WorksheetFunction
②WorksheetFunction.関数(引数)
Max、Mini関数
Max(範囲)
Large、Small関数
Large(範囲,順位)
SumIf(セル範囲,検索文字,合計セル範囲)
VLookup(検索値,対象範囲,列番号,検索の型)
※検索の型は完全一致なら0かFalse
CountIf(対象範囲,検索文字)
Index関数…指定範囲の中で上からN番目を教えてくれる。
Index(検索範囲,上からN番目)
Match関数…指定範囲の中で何番目にあるか数字で返してくれる。
Match(検索値,検索範囲,照合の型)
※Matchの照合の型は、0(完全一致、並べ替えの必要がない)が多そう。
EoMonth関数
EoMonth関数(開始日,nヵ月後)
CDate関数
※構文は、CDate(値)
Matchが先に来て、外側に来るのはIndex
※可読性が悪いので、Index関数の「N番目」というところに変数を使った方が良い。
Dateserial関数
Dateserial(年,月,日)
第6章:セルの検索とオートフィルターの操作
①Find
②セル範囲.Find(What:=検索する語句,LookAt:~)
※他にも引数はあるけど、メインのもののみ記載↑
完全一致⇒ LookAt:=xlWhole
部分一致⇒ LookAt:=xlPart
Findメソッドでセルが見つからなかった際、①検索する語句が見つからなかった時、
②検索する語句が見つかった時はどう表現する?
①If 検索値 Is Nothing Then
②If Not 検索値 Is Nothing Then
①任意のセル.EntireRow
②任意のセル.EntireColumn
①Delete
②削除する行.Delete
①Range(左上セル,右下セル)で特定
②Resizeプロパティ
※①はRange(Range(“A6”),Range(“C6”)) というような表現になる。
セル.AutoFilter 列,検索条件・文字1,絞り込み方法の定数,検索条件・文字2(あれば)…
※絞り込み方法の定数は、xlAndやxlOr
xlAnd、xlOr
①配列
②xlFilterValues
任意のセル.CurrentRegion
Cells(Rows.Count,列番号).End(xlUp)
任意のセル.End(xlDown)
指定方法を変えると、いろいろな集計ができる(①)関数。 ②構文は?
③集計方法が3だと●●、9だと●●と同じ意味。(●●には関数が入る)
①SubTotal
②SubTotal(集計方法,集計範囲)
③COUNTA、SUM
※SubTotalは見えているセルだけを計算対象にする。
(セルを選択して、1つのセルに入力した上で)Ctrl+Enter
Ctrl+Shift+L
AutoFilterメソッドでの解除
引数を指定しないと(①)
引数のところに最初と同じ列番号を入力すると(②)となる。
①フィルターそのものが解除される。
②フィルターはそのままで、絞りこみが解除される。
第7章:データの並べ替え
ふりがな
「ホーム」→「フォント」タブの「ふりがなの表示/非表示」
※ふりがなの表示の設定もここでできる。
①他のアプリケーションからコピーした場合
②VBAでセルに代入した場合
③CSVファイルで読み込んだ場合
最初にふりがなあるものが来て、その後にふりがながないものが文字コード順に並べられる。
セル内のふりがなを取得したい場合は、(①)プロパティの(②)オブジェクトを使う。
③その時の構文は? ④ふりがな登録されていない場合はどうなる?
①Phonetic ②Text
③セル範囲.Phonetic.Text
④漢字がそのまま返ってくる
※=でつないで、ふりがなを代入することはできるけど、空白を入れてふりがなの消去はできない
HeaderRowRange
第9章:エラー対策
・記述エラー(記述に誤りあり)
・倫理エラー(コードの理論的な矛盾)
⇒コンパイルエラー(コンパイル時に発生)
⇒実行時エラー(実行時に発覚する)
デバッグ→VBA Projectのコンパイルから実行
※エラーは黄色でわかるが、実行時とは違い、デバッグモードにはならない。
エラーが発生したら別の処理に移動するためには(①)ステートメントを使う。 ②構文は?
③エラーが発生しなかった時に備えて何をすれば良いか?
①On Error
②On Error GoTo ジャンプ先のラベル名
③Exit Subを入れておく
※Exit Subはラベル名の前の行。
ラベル名は「ラベル名:~」という表記で記載
Err
①Err.Descrioution(Descrioutionプロパティ)→エラー内容がわかる
②Err.Number(Numberプロパティ)→エラー番号がわかる
③Err.Clear(Clearメソッド)→エラー情報クリア
①9→インデックスが有効範囲にありません。(指定したシートが存在しない時など)
②1004→同じ名前のブックがある、ブック名などに不正な文字が… ブックが保護されている、など。
On Error Resume Next
※例文ではプロシージャ名のすぐ下に記載されている。
ブックが保存されているか確認したい時は、(①)プロパティを使う。
②構文&結果はどのように返ってくるか?
①Saved
②~.Saved TrueかFalseで返ってくる。
ブックが保護されているか確認したい時は、(①)プロパティを使う。
②構文&結果はどのように返ってくるか?
①ProtectStructure
②~.ProtectStructure TrueかFalseで返ってくる
①データクレンジングのために文字種を変換する関数は? ②構文は?
③半角から全角、全角から半角に変える際の記述は?(定数のみ答える)
①StrConv関数
②StrConv(文字列,定数)
③半角から全角は「vbWide」、全角から半角は「vbNarrow」
①文字を置換する関数は? ②構文は?
③①を使って文字を除去するには?
①Replace関数
②Replace(元の文字列,検索文字,置換文字)
③置換文字に空白””を指定する
①DateSerial関数
②DateSerial(年,月,日)
任意のセルを指定の書式で設定するのに使う関数は2つある。
①=で結んで使う方は?構文は? ②()で囲んで使う方は?構文は?
①NumberFormat関数 NumberFormat=”指定の書式”
②Format(値,書式記号)
※①での指定の書式はたとえば「2024/06/22」なら「yyyy/mm/dd」
第10章:デバッグ
イミディエイトウィンドウ
※マクロ実行中のデバッグモードなど使用することが多いが、実行とは関係なく、いつでも使用できる。
表示→イミディエイトウィンドウを押下
Ctrl+G
イミディエイトウィンドウでは調べる時は先頭に(①)を付ける。
②記載のルールがもう1つあるが、それを挙げよ。
①?
②英字は全て小文字で記載。
できる→調べる、代入、実行
できない→変数の宣言、小文字から大文字への自動変換
※小文字のままで良い。
※変数は使うことができる。宣言しなくて良いということ。
暗黙の宣言
Debug.Print 表示内容
※カーソルがある位置に出力されるので位置注意。
イミディエイトウィンドウは(①)をドラッグすることで画面から切り離せる。
切り離した状態を(②)、切り離していない状態を(③)という。
①タイトルバー ②フローティング ③ドッキング
①マクロを一時停止される方法を2つ答えよ。
②マクロのコードを1行ずつ止めながら進めることをなんというか?
①ブレークポイント、Stopステートメント
②ステップイン
①ブレークポイントを設定する方法を2つ答えよ。
②背景色は●●になる。
③ストップした時、その行は実行されている?されていない?
④再開する方法は?
①F9を押下、左のインジケーターをクリック。
②茶色
③実行されていない
④F5を押下(もしくは普通に実行→継続でも可)
マウスポイントを合わせる
Stopステートメントは(①)するだけで良い。(文章が入る)
(②)ステートメントを組み合わせることも多い。
①Stopと書く
②If
ステップインするには、実行したい(①)の中にカーソルを置き、(②)を押下する。
1行ごと進んでいく。黄色くなっているのは(③)分。
①プロシージャ
②F8
③これから実行する
①TypeName関数
②TypeName(調べたいもの)
※RangeとかStringとか返ってくる。変数に格納されている値も調べることができる。
Double
※倍精度浮動小数点数
①IsNumeric関数
②IsNumeric(引数)
※TrueかFalseで返ってくる
①IsDate関数
②IsDate(引数)
※TrueかFalseで返ってくる
コメント