初級脱出10問パック解答
マクロVBA練習問題初級脱出10問パックの解答ページです。
マクロVBA練習問題
ページ内目次
問題1:文字列結合
![VBA練習問題 マクロ練習問題 初級脱出10問パック](image398.jpg)
さらにその後ろに括弧()の中に年齢を入れてD列に出力してください。
例「日本 太郎(30)」
![VBA練習問題 マクロ練習問題 初級脱出10問パック](image424.jpg)
問題2:文字列分割
![VBA練習問題 マクロ練習問題 初級脱出10問パック](image399.jpg)
通常は「性」と「名」は半角空半" "で区切られていますが、区切られていない場合はB列に氏名をそのまま出力してください。
![VBA練習問題 マクロ練習問題 初級脱出10問パック](image414.jpg)
問題3:消費税計算
![VBA練習問題 マクロ練習問題 初級脱出10問パック](image400.jpg)
少数以下の端数は切り捨て。
税抜き単価×数量×(1+消費税率)
![VBA練習問題 マクロ練習問題 初級脱出10問パック](image3981.jpg)
問題4:数値合計とMsgBox
![VBA練習問題 マクロ練習問題 初級脱出10問パック](image401.jpg)
![VBA練習問題 マクロ練習問題 初級脱出10問パック](image416.jpg)
問題5:セル範囲のコピー
![VBA練習問題 マクロ練習問題 初級脱出10問パック](image402.jpg)
L1からL10にコピーしてください。
数式や書式を含めてセルの全てをコピーしてください。
![VBA練習問題 マクロ練習問題 初級脱出10問パック](image417.jpg)
問題6:セル範囲の値コピー
![VBA練習問題 マクロ練習問題 初級脱出10問パック](image403.jpg)
L1からL10に値のみコピーしてください。
※数式や書式はコピーせずに値(ここでは数値)のみをコピー。
![VBA練習問題 マクロ練習問題 初級脱出10問パック](image418.jpg)
問題7:別シートからデータ取得
![VBA練習問題 マクロ練習問題 初級脱出10問パック](image404.jpg)
![VBA練習問題 マクロ練習問題 初級脱出10問パック](image405.jpg)
社員番号が「社員マスタ」に存在しない場合は空欄にしてください。
![VBA練習問題 マクロ練習問題 初級脱出10問パック](image419.jpg)
問題8:ファイル一覧
![VBA練習問題 マクロ練習問題 初級脱出10問パック](image406.jpg)
サブフォルダは「フォルダ名(B1)」で指定します。
![VBA練習問題 マクロ練習問題 初級脱出10問パック](image420.jpg)
問題9:別ブックのデータ取得
![VBA練習問題 マクロ練習問題 初級脱出10問パック](image421.jpg)
「フォルダ名(B1)」セルの中にある「ファイル名(B2)」のExcelファイルの「シート名(B3)」の「列番号(B4)」からデータを取得してください。
空白以外のセル値のみを取得してください。
空白セルは飛ばして(その分は上に詰めて)D列に出力してください。
![VBA練習問題 マクロ練習問題 初級脱出10問パック](image422.jpg)
問題10:ブックのバックアップとボタン設置
![VBA練習問題 マクロ練習問題 初級脱出10問パック](image408.jpg)
クリックで以下が実行されるようにしてください。
・このブックのバックアップを作成
ブック名は後ろに日時を付けた名前にしてください。
「ブック名.xlsm」 → 「ブック名_yyyymmddhhnnss.xlsm」
・「問題1」から「問題9」までのマクロ全て実行する。
![VBA練習問題 マクロ練習問題 初級脱出10問パック](image423.jpg)
サンプルのExcelファイルのダウンロード
※zipには「問題8」「問題9」で使うサブフォルダも含まれています。
xlsxにはサブフォルダは含まれていないので、テストデータとしてご自身で作成してください。
では、お考えください。
すぐに解答を見ずに、必ず自力で書けるとこまででも良いので書きましょう。
シンキングタイム
シンキングタイム終了
書くべきマクロVBAが分からない時は、
ここでじっくり勉強してから再チャレンジしてください。
マクロVBA練習問題解答
ページ内目次(VBA解答コード)
問題1:文字列結合(VBA解答コード)
![VBA練習問題 マクロ練習問題 初級脱出10問パック](image424.jpg)
Sub Q01()
Dim ws As Worksheet: Set ws = Worksheets("問題1")
Dim i As Long
For i = 2 To ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
ws.Cells(i, 4) = ws.Cells(i, 1) & " " & ws.Cells(i, 2) & "(" & ws.Cells(i, 3) & ")"
Next
End Sub
もちろん事前に書いたコードをコピーして使い回して構いません。
とはいえ、最初の何回かはタイピングして覚えるようにしてください。
問題2:文字列分割(VBA解答コード)
![VBA練習問題 マクロ練習問題 初級脱出10問パック](image414.jpg)
Sub Q02()
Dim ws As Worksheet: Set ws = Worksheets("問題2")
Dim i As Long, vTmp
For i = 2 To ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
vTmp = Split(ws.Cells(i, 1).Value, " ")
If UBound(vTmp) >= 1 Then
ws.Cells(i, 2).Value = vTmp(0)
ws.Cells(i, 3).Value = vTmp(1)
Else
ws.Cells(i, 2).Value = ws.Cells(i, 1).Value
End If
Next
End Sub
文字列を分割するのは意外と面倒です。
Split関数を覚えて、その流れで配列も扱えるようになりましょう。
問題3:消費税計算(VBA解答コード)
![VBA練習問題 マクロ練習問題 初級脱出10問パック](image3981.jpg)
Sub Q03()
Dim ws As Worksheet: Set ws = Worksheets("問題3")
Dim tax As Double: tax = ws.Range("B1").Value + 1
Dim rng As Range: Set rng = ws.Range("A3").CurrentRegion
Dim i As Long
For i = 4 To rng(rng.Count).Row
ws.Cells(i, 3).Value = Int(ws.Cells(i, 1).Value * ws.Cells(i, 2).Value * tax)
Next
End Sub
最終行の取得方法もいくつかのパターンを覚えましょう。
計算時に使うVBA関数は限られているのでさくっと調べておきましょう。
問題4:数値合計とMsgBox(VBA解答コード)
![VBA練習問題 マクロ練習問題 初級脱出10問パック](image416.jpg)
Sub Q04()
Dim ws As Worksheet: Set ws = Worksheets("問題3")
Dim tax As Double: tax = ws.Range("B1").Value
Dim rng As Range: Set rng = ws.Range("A3").CurrentRegion
Dim i As Long, total As Long
For i = 4 To rng(rng.Count).Row
total = total + Int(ws.Cells(i, 1).Value * ws.Cells(i, 2).Value * tax)
Next
MsgBox total
End Sub
変数の型をしっかり扱うのは意外に面倒なものです。
したがって型指定を省略するのも一つの手ではありますが、基本のデータ型は覚えてください。
問題5:セル範囲のコピー(VBA解答コード)
![VBA練習問題 マクロ練習問題 初級脱出10問パック](image417.jpg)
Sub Q05()
Dim ws As Worksheet: Set ws = Worksheets("問題5")
ws.Range("A1:J10").Copy Destination:=ws.Range("L1")
End Sub
サイト内参考ページ
問題6:セル範囲の値コピー(VBA解答コード)
![VBA練習問題 マクロ練習問題 初級脱出10問パック](image418.jpg)
.Value = .Value
この書き方は必ず習得しておいてください。
Sub Q06()
Dim ws As Worksheet: Set ws = Worksheets("問題6")
ws.Range("L1:U10").Value = ws.Range("A1:J10").Value
End Sub
サイト内参考ページ
問題7:別シートからデータ取得(VBA解答コード)
![VBA練習問題 マクロ練習問題 初級脱出10問パック](image419.jpg)
ただし、シートでは単にエラー値が表示されるだけですが、VBAは停止してしまいます。
エラー処理も同時に覚えておきましょう。
Sub Q07()
Dim ws As Worksheet: Set ws = Worksheets("問題7")
Dim mst As Worksheet: Set mst = Worksheets("社員マスタ")
Dim i As Long, ix As Long
On Error Resume Next
For i = 2 To ws.Cells(Rows.Count, 1).End(xlUp).Row
Err.Clear
ix = WorksheetFunction.Match(ws.Cells(i, 1), mst.Columns(1), 0)
If Err.Number = 0 Then
ws.Cells(i, 2).Value = mst.Cells(ix, 2).Value
ws.Cells(i, 3).Value = mst.Cells(ix, 3).Value
Else
ws.Cells(i, 2).Value = ""
ws.Cells(i, 3).Value = ""
End If
Next
On Error GoTo 0
End Sub
サイト内参考ページ
問題8:ファイル一覧(VBA解答コード)
![VBA練習問題 マクロ練習問題 初級脱出10問パック](image420.jpg)
Dir関数とFileSystemObjectの両方とも使えるようになっておいた方が良いでしょう。
Sub Q08()
Dim ws As Worksheet: Set ws = Worksheets("問題8")
ws.Columns("D").ClearContents
Dim sDir As String
sDir = ThisWorkbook.Path & "\" & ws.Range("B1").Value & "\"
Dim i As Long, sFile As String
i = 1
sFile = Dir(sDir)
Do While sFile <> ""
ws.Cells(i, 4).Value = sFile
i = i + 1
sFile = Dir()
Loop
End Sub
Sub Q08_2()
Dim ws As Worksheet: Set ws = Worksheets("問題8")
ws.Columns("D").ClearContents
Dim sDir As String
sDir = ThisWorkbook.Path & "\" & ws.Range("B1").Value & "\"
Dim objFSO As Object
Dim objFolder As Object
Dim objFile As Object
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder(sDir)
Dim i As Long
i = 1
For Each objFile In objFolder.Files
ws.Cells(i, 4).Value = objFile.Name
i = i + 1
Next
End Sub
サイト内参考ページ
問題9:別ブックのデータ取得(VBA解答コード)
![VBA練習問題 マクロ練習問題 初級脱出10問パック](image422.jpg)
これがスムーズにできるようになると、扱えるVBAの幅もぐっと広がります。
Sub Q09()
Dim ws As Worksheet: Set ws = Worksheets("問題9")
Dim wbIn As Workbook, wsIn As Worksheet, sFile As String
sFile = ThisWorkbook.Path & "\" & ws.Range("B1").Value & "\" & ws.Range("B2").Value
Set wbIn = Workbooks.Open(Filename:=sFile)
Set wsIn = wbIn.Worksheets(ws.Range("B3").Value)
ws.Columns("D").ClearContents
Dim col As String: col = ws.Range("B4").Value
Dim iIn As Long, iOut As Long
iOut = 1
For iIn = 1 To wsIn.Cells(wsIn.Rows.Count, col).End(xlUp).Row
If wsIn.Cells(iIn, col).Value <> "" Then
ws.Cells(iOut, 4).Value = wsIn.Cells(iIn, col).Value
iOut = iOut + 1
End If
Next
wbIn.Close SaveChanges:=False
End Sub
サイト内参考ページ
問題10:ブックのバックアップとボタン設置(VBA解答コード)
![VBA練習問題 マクロ練習問題 初級脱出10問パック](image423.jpg)
Sub Q10()
Dim sFile As String, i As Long, ymdhns As String
sFile = ThisWorkbook.FullName
ymdhns = Format(Now(), "_yyyymmddhhnnss")
sFile = Replace(sFile, ".xlsm", ymdhns & ".xlsm")
ThisWorkbook.SaveCopyAs sFile
Call Q01
Call Q02
Call Q03
Call Q04
Call Q05
Call Q06
Call Q07
Call Q08
Call Q09
End Sub
![VBA練習問題 マクロ練習問題 初級脱出10問パック](image188.jpg)
同じテーマ「マクロVBA練習問題解答」の記事
練習問題23(総合練習5)解答
練習問題24(再帰呼出し)解答
練習問題25(各種VBA関数)解答
練習問題26(全シート処理とハイパーリンク)解答
練習問題27(データ分割し別ブック保存)解答
練習問題28(シートを別ブックにして値のみにする)解答
練習問題29(ロット引き当て)解答
練習問題30(マトリックス→リスト形式)解答
練習問題31(セル結合を解除して値を埋める)解答
練習問題32(連続数値部分を取り出し記号で連結)解答
初級脱出10問パック解答
新着記事NEW ・・・新着記事一覧を見る
正規表現関数(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)
累計を求める数式あれこれ|エクセル関数応用(2024-01-22)
アクセスランキング ・・・ ランキング一覧を見る
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.メッセージボックス(MsgBox関数)|VBA入門
8.セルのクリア(Clear,ClearContents)|VBA入門
9.並べ替え(Sort)|VBA入門
10.ブック・シートの選択(Select,Activate)|VBA入門
- ホーム
- マクロVBA入門編
- マクロVBA練習問題解答
- 初級脱出10問パック解答
このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
記述には細心の注意をしたつもりですが、
間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。