VBAエキスパート
「ExcelVBAベーシック」取得記念として投稿しました。
VBAエキスパートで他の資格を取得したら更新します。(おそらく)
マクロの資格試験する人の参考になれば幸いです。
ExcelVBAの資格試験は以下より受験できます。
https://vbae.odyssey-com.co.jp/
└ExcelやAccessのマクロやVBA(Visual Basic for Applications)のプログラミングスキルを証明する資格試験。
VBAエキスパートはExcel、AccessのVBAの資格試験です。
それぞれベーシックとスタンダードの2つのレベルがあり、
Excel・Access両方のスタンダードを取得すると
「スタンダードクラウン」のオープンバッジを発行してもらえるみたいです。
(メールの署名にあったらかっこいいかも)
詳しいことは前置きのURL先に全部書いてありますので省略します。
ExcelVBAベーシック
-
試験概要
- 問題数:約40問
- 出題形式:選択、ドロップダウンリスト、穴埋め記述...
- 試験方法:CBT形式
- 試験時間:50分
- 合格基準:65%~80% (私が受験したときは80%くらいでした)
-
学習方法
★ 使用参考書「VBAエキスパート公式テキスト Excel VBA ベーシック」
└ https://aoten.jp/store/detail.html?no=a2800i_v190530- 参考書を3周する
- 1周目:全部読む(「知らないやつ...」と思った箇所に線を引く)
- 2周目:1周目で線を引いた箇所だけ読む
- 3周目:2周目から時間をおいて(1か月以上)全部読む(※1か月もの時間を置いたのはやる気喪失してしまったからです。)
- 模擬試験を約10回実施(※模擬試験は参考書にURL記載されてます)
→8割くらいを目標にする。 - (概算)学習時間:30分×3回+30分×10回くらい?
- 参考書を3周する
-
試験所感
- 「この問題…模擬試験でやったやつだ!」という某通信教育の付録漫画みたいな感じでした。
- 試験問題は類似が多く解きやすい一方で、for文×if文の条件問題を解くときは若干メモ紙欲しい気持ちになりました。普段スマホ電卓に頼っている人は暗算できる程度の集中力は持参した方がいいかもしれません。
- 上記の学習以外にVBAでツール作成をいくつかやっていたので、記載した学習時間は土台ありでの話になります。(そもそも大雑把すぎる学習時間算出ですが)
- 見直したい問題などがあれば、「あとで見直す」というなチェックボックスが画面内にあるので活用してみるといいかもしれません。
参考までに……VBAベーシック資格試験あたりに書いたコードです。
色々言いたいことあるかもですが、これくらいのスキルで受けました~という目安になります(笑)
<スケジュール表に新しい月を追加する処理>
'最終年月の値の取得
Number = 1
Call Set_ColMax(ColMaxYear, Number, Schedule)
Number = 2
Call Set_ColMax(ColMaxMonth, Number, Schedule)
NowYear = worksheets(Schedule).Cells(1, ColMaxYear)
NowMonth = worksheets(Schedule).Cells(2, ColMaxMonth)
'追加行の取得
Number = 4
Call Set_ColMax(ColMax, Number, Schedule)
Number = 10
Call Set_RowMax(RowMax, Number, Schedule)
RowMax = RowMax
'追加年月と日数の取得
If NowMonth = 12 Then '年末処理(12月)
NowMonth = 1
NowYear = NowYear + 1
LastDate = DateSerial(NowYear, NowMonth, 1) - 1
AddDay = Day(LastDate) '追加日数
Else '(1~11月)
LastDate = DateSerial(NowYear, NowMonth + 2, 1) - 1
AddDay = Day(LastDate) '追加日数
NowMonth = NowMonth + 1
End If
'追加処理
rc = MsgBox(NowYear & "年" & NowMonth & "月分を追加しますか?", vbYesNo + vbQuestion)
If rc = vbYes Then
With worksheets(Schedule)
.Cells(1, ColMax + 1) = NowYear '年の入力
k = ColMax + 1 '入力列
For i = 1 To AddDay
For j = 1 To 2
Select Case j
Case 1
.Cells(2, k) = NowMonth '月の入力
.Cells(3, k) = i '日の入力
.Cells(4, k) = "AM" 'AMの入力
.Cells(6, k) = WeekdayName(Weekday(DateSerial(NowYear, NowMonth, i)), True) '曜日の取得
'書式
.Columns(k).ColumnWidth = 2 '列幅
Case 2
.Cells(2, k) = NowMonth '月の入力
.Cells(3, k) = i '日の入力
.Cells(4, k) = "PM" 'PMの入力
.Cells(6, k) = WeekdayName(Weekday(DateSerial(NowYear, NowMonth, i)), True) '曜日の取得
.Cells(2, k).Font.Color = RGB(255, 255, 255) '見えないようにする
.Cells(3, k).Font.Color = RGB(255, 255, 255) '見えないようにする
.Columns(k).ColumnWidth = 2 '列幅
End Select
If .Cells(6, k) = "土" Or .Cells(6, k) = "日" Then
.Range(.Cells(6, k), .Cells(RowMax, k)).Interior.Color = RGB(155, 155, 155) '土日の場合は色を変更する。
End If
.Cells(4, k).Interior.Color = RGB(116, 181, 228)
k = k + 1
Next j
'書式設定
With .Range(.Cells(1, k - 2), .Cells(RowMax, k - 1)).Borders
.LineStyle = xlContinuous
.Weight = xlThin
.Color = vbBlack
End With
With .Range(.Cells(1, k - 2), .Cells(RowMax, k - 1)).Borders(xlInsideVertical)
.LineStyle = xlDash
.Weight = xlThin
.Color = vbBlack
End With
Next i
End With
Else
Exit Sub
End If
(記載:2023/10/12)
ExcelVBAスタンダード
更新予定未定。