【Excel VBA】4択式マークシート

VBA・Officeカテゴリを表すパンダのイラスト VBA・Office

この記事で何ができるか

IPA(情報処理技術者試験)などの4択式問題集を電子書籍や画面上で解く際、Excelのセルをクリックするだけで簡単に解答(「〇」)をマークし、開始から終了までの時間を計測できるマークシート環境を構築できます。

想定環境・前提条件

  • Microsoft Excel がインストールされている環境(Windows / Mac)
  • マクロ(VBA)の実行が許可されているワークブック(.xlsm)

シート構成の仮定

本コードは、シートのイベントを利用した簡易マークシートです。想定しているセルの配置や役割は以下の通りです。

  • G4セル:リセットボタン(クリックすると解答欄「G11:J60」および時間記録を初期化し、開始時刻を記録)
  • G5セル:終了ボタン(クリックすると終了時刻を記録し、経過時間を算出)
  • G11:J60セル:4択の解答マークエリア(G列=1番、H列=2番、I列=3番、J列=4番)

完全なVBAコード

対象のワークシートのシートモジュール(Sheet1など)に、以下のVBAコードを貼り付けます。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    ' 複数セルが同時に選択された場合は処理を終了
    If Target.CountLarge <> 1 Then Exit Sub
    
    ' G4セル(リセット)が選択された場合
    If Target.Address = "$G$4" Then
        Me.Range("G11:J60").Value = ""
        Me.Range("$H$4").Value = Now
        Me.Range("$H$5").Value = ""
        Me.Range("$H$6").Value = ""
    End If
    
    ' G5セル(終了)が選択された場合
    If Target.Address = "$G$5" Then
        Me.Range("$H$5").Value = Now
        Me.Range("$H$6").Value = Me.Range("$H$5").Value - Me.Range("$H$4").Value
    End If
    
    ' 解答マーク指定範囲(G11:J60)以外の場合は終了
    If Intersect(Target, Range("G11:J60")) Is Nothing Then Exit Sub
    
    ' 選択された列位置を取得し、該当行のG~J列を一旦クリアした上で「〇」を入力
    Dim i As Long
    i = Target.Column
    
    Me.Cells(Target.Row, 7) = ""
    Me.Cells(Target.Row, 8) = ""
    Me.Cells(Target.Row, 9) = ""
    Me.Cells(Target.Row, 10) = ""
    
    Me.Cells(Target.Row, i) = "〇"
End Sub

使い方と実行手順

  1. Excelを起動し、マクロ有効ブック(.xlsm)として保存します。
  2. 対象シートのシート見出しを右クリックし、「コードの表示」を選択します。
  3. 上記コードをシートモジュールに貼り付けます。
  4. G11からJ60にかけて問題の解答欄を作成し、G4セルをクリックして計測を開始します。
  5. 問題を解きながら該当するセルをクリックすると「〇」が入り、すべて解答したらG5セルをクリックして時間を確定させます。

注意事項・後始末

  • ファイル形式は必ずマクロ有効ブック(.xlsm)で保存してください。
  • マクロが無効化されているとクリックによるマーク機能が動作しないため、セキュリティの設定でコンテンツの有効化を行ってください。

この記事の更新履歴

この記事は、生成AIを活用した自動レビュー・更新フローにより内容を見直し、必要な修正を反映しています。

2026年9月12日

  • 削除リンク切れとなっている外部のMarkSheet.zipダウンロードリンクを削除しました。
  • 追加前提条件、シート構成の仮定、および完全な再構成VBAコードを追加しました。
  • 追加開始・終了時間の計測および解答選択の操作手順・使い方を追加しました。

文書情報

記事タイトル
【Excel VBA】4択式マークシート
作成日
更新日
Source URL
https://papanda925.com/?p=637

ライセンス: 本記事のうち、当サイトが権利を有する本文・自作図表は、特記なき限り CC BY 4.0 で利用できます。生成AIを活用して作成・編集した内容を含みます。コードについて、別途ライセンス表示またはリンク先GitHubリポジトリのライセンスがある場合は、その条件を優先します。引用・第三者資料・画像・商標等は本ライセンスの対象外です。 利用ポリシー

タイトルとURLをコピーしました