Excel VBAで処理の進捗状況をリアルタイム表示!

Excel VBAを使ったCSVファイルの取り込み処理について、今回はUserFormを使って処理の進捗状況をリアルタイムで表示する方法を紹介します。この手法は、大量のデータを処理する際や長時間かかる処理を行う際に特に有用です。本ブログでは、その利点や実装方法について詳しく解説します。

サンプルアプリの使い方

下記「CSVデータ取込み」ボタンをクリックすると、CSVファイルの選択を促すウィンドウが表示されます。このウィンドウで、今回用意したCSV形式のサンプルファイルを選択して実行すると、UserFormが表示され、処理の進捗状況がリアルタイムで表示されます。処理が完了すると、「読み込み完了」というメッセージが表示されます。

コードの内容について

コードのポイントとは、UserFormを使って処理の進捗状況を表示する点です。処理の進捗率を計算し、UserFormにリアルタイムに反映させることにより、ユーザーに処理の経過を伝えることができます。なお、今回のコードでは、CSVファイルの読み込み処理を行う際に、データ数が少なく処理が迅速に終了するため、進捗状況を確認しやすくするために20ミリ秒ごとに一時停止させています(75行目)。

UserFormの作成方法

進捗状況を表示するUserFormは、ツールボックスコントロールのラベルを使って、以下のように作成しました。赤丸箇所はコードの中で記述している箇所です。なお、UserFormの詳細な作成方法については、下記リンク先をご覧ください。

  https://scodebank.com/?p=294

サンプルコードの紹介   アプリの作成手順はこちら

39行目でCSVファイルのデータ数を取得して、81行目でデータ全体に対する処理数を%で表示しています。23行目のカレントディレクトリを設定するUrlToLocal関数については、下記リンク先の解説をご覧ください。
  https://scodebank.com/?p=696

'Windows APIのSleep関数を宣言して、マクロ内で一時停止を可能にする
Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

'変数を宣言していないときにエラーを出すオプションを有効化
Option Explicit

'---------------------------------------------------------------------

'メインのマクロ開始
Sub CSVファイル取込み()
  

 '現在アクティブなシートを取得して変数に格納
  Dim Sh As Worksheet
  Set Sh = ActiveSheet

  'シート上の既存データをクリアする
   Dim RowEnd As Long
   RowEnd = Sh.Cells(Rows.Count, 1).End(xlUp).Row 'データ最終行を取得
   Range(Sh.Cells(1, 1), Sh.Cells(RowEnd, 4)).ClearContents 'データクリア

  'このブックのパスを取得し、その場所にカレントディレクトリを設定する
  ChDir UrlToLocal(ThisWorkbook.Path)

 'ユーザーにCSVファイルを選択させ、ファイルパスを取得
  Dim varFileName As Variant
  varFileName = Application.GetOpenFilename(FileFilter:="CSVファイル(*.csv),*.csv", _
                                            Title:="CSVファイルの選択")
  If varFileName = False Then
     Exit Sub
  End If

 '進捗状況を表示するためのUserFormを表示する(モードレス)
 'モードレスモードでは、ユーザーフォームが表示されている間でも、
 '元のウィンドウやアプリケーションで他の操作を行うことができます
  UserForm1.Show vbModeless

 '選択したCSVファイルの行数(データ数)を取得
  Dim FSO As Object, Total As Long
  Set FSO = CreateObject("Scripting.FileSystemObject")
  With FSO.OpenTextFile(varFileName, 8)
   Total = .Line
       .Close
  End With
  Set FSO = Nothing

 'CSV読み込み関係変数定義
  Dim buf  As String, tmp As Variant, i As Long

 'CSVファイルから読み込んだ1行のデータを格納する変数    
  Dim strLine As String
 
 '行のカウンターを初期化 
  i = 1
  
 '選択したCSVファイルを読み込みモードで開く
  Open varFileName For Input As #1

   'ファイルの終端に達するまでループ
    Do Until EOF(1)
        
     'ファイルから1行読み込む
      Line Input #1, buf
      
     '読み込んだ1行のデータをカンマで分割し、配列に格納する        
      tmp = Split(buf, ",")
     
     'シートに読み込んだデータを書き込む
      Cells(i, 1) = tmp(0) '和暦
      Cells(i, 2) = tmp(1) '西暦
      Cells(i, 3) = tmp(2) '満年齢
      Cells(i, 4) = tmp(3) '干支
     
     '20ミリ秒の間隔で処理を一時停止する
      Call Sleep(20)

     '行のカウンターをカウントアップ
      i = i + 1

     '進捗率をUserFormに表示し、再描画する
     UserForm1.Label3.Caption = Round((i) / Total * 100)
     UserForm1.Repaint

  Loop

    'CSVファイルを閉じる
    Close #1
  
 '進捗状況を表示していたUserFormをアンロードする      
  Unload UserForm1

 '元のシートを選択する
  Sh.Select

' 読み込み完了メッセージを表示
  MsgBox "読み込み完了"

End Sub

'-------------------------------------------------------------------------

'URLをローカルパスに変換する関数
Public Function UrlToLocal(ByRef Url As String) As String

   'OneDriveのパスを格納する変数を定義
    Dim OneDrive As String

   'OneDriveのパスを取得する
    OneDrive = Environ("OneDrive")

   'URLがOneDriveのパスであるかをチェック
    If Url Like "https://*" Then 'OneDriveのパスかどうかの判定
                 
      'URLからOneDriveの部分を取り除き、ローカルパスを作成
      Url = OneDrive & Replace(Mid(Url, 41), "/", Application.PathSeparator)
    
    Else
    
      'OneDrive以外の場所であれば、その場所のドライブをカレントドライブに指定
      ChDrive Left(Url, 1)
     
    End If

  '作成したローカルパスを返す
   UrlToLocal = Url

End Function

今回用意したCSVファイルの内容は以下の通りです。

和暦,西暦,満年齢,干支
令和6年,2024年,0歳,辰(たつ)
令和5年,2023年,1歳,卯(う)
令和4年,2022年,2歳,寅(とら)
令和3年,2021年,3歳,辰(たつ)
令和2年,2020年,4歳,卯(う)
平成31年 / 令和元年,2019年,5歳,亥(い)
平成30年,2018年,6歳,戌(いぬ)
平成29年,2017年,7歳,酉(とり)
平成28年,2016年,8歳,申(さる)
平成27年,2015年,9歳,未(ひつじ)
平成26年,2014年,10歳,午(うま)
平成25年,2013年,11歳,巳(み)
平成24年,2012年,12歳,辰(たつ)
平成23年,2011年,13歳,卯(う)
平成22年,2010年,14歳,寅(とら)
平成21年,2009年,15歳,丑(うし)
平成20年,2008年,16歳,子(ね)
平成19年,2007年,17歳,亥(い)
平成18年,2006年,18歳,戌(いぬ)
平成17年,2005年,19歳,酉(とり)
平成16年,2004年,20歳,申(さる)
平成15年,2003年,21歳,未(ひつじ)
平成14年,2002年,22歳,午(うま)
平成13年,2001年,23歳,巳(み)
平成12年,2000年,24歳,辰(たつ)
平成11年,1999年,25歳,卯(う)
平成10年,1998年,26歳,寅(とら)
平成9年,1997年,27歳,丑(うし)
平成8年,1996年,28歳,子(ね)
平成7年,1995年,29歳,亥(い)
平成6年,1994年,30歳,戌(いぬ)
平成5年,1993年,31歳,酉(とり)
平成4年,1992年,32歳,申(さる)
平成3年,1991年,33歳,未(ひつじ)
平成2年,1990年,34歳,午(うま)
昭和64年 / 平成元年,1989年,35歳,巳(み)
昭和63年,1988年,36歳,辰(たつ)
昭和62年,1987年,37歳,卯(う)
昭和61年,1986年,38歳,寅(とら)
昭和60年,1985年,39歳,丑(うし)
昭和59年,1984年,40歳,子(ね)
昭和58年,1983年,41歳,亥(い)
昭和57年,1982年,42歳,戌(いぬ)
昭和56年,1981年,43歳,酉(とり)
昭和55年,1980年,44歳,申(さる)
昭和54年,1979年,45歳,未(ひつじ)
昭和53年,1978年,46歳,午(うま)
昭和52年,1977年,47歳,巳(み)
昭和51年,1976年,48歳,辰(たつ)
昭和50年,1975年,49歳,卯(う)
昭和49年,1974年,50歳,寅(とら)
昭和48年,1973年,51歳,丑(うし)
昭和47年,1972年,52歳,子(ね)
昭和46年,1971年,53歳,亥(い)
昭和45年,1970年,54歳,戌(いぬ)
昭和44年,1969年,55歳,酉(とり)
昭和43年,1968年,56歳,申(さる)
昭和42年,1967年,57歳,未(ひつじ)
昭和41年,1966年,58歳,午(うま)
昭和40年,1965年,59歳,巳(み)
昭和39年,1964年,60歳,辰(たつ)
昭和38年,1963年,61歳,卯(う)
昭和37年,1962年,62歳,寅(とら)
昭和36年,1961年,63歳,丑(うし)
昭和35年,1960年,64歳,子(ね)
昭和34年,1959年,65歳,亥(い)
昭和33年,1958年,66歳,戌(いぬ)
昭和32年,1957年,67歳,酉(とり)
昭和31年,1956年,68歳,申(さる)
昭和30年,1955年,69歳,未(ひつじ)
昭和29年,1954年,70歳,午(うま)
昭和28年,1953年,71歳,巳(み)
昭和27年,1952年,72歳,辰(たつ)
昭和26年,1951年,73歳,卯(う)
昭和25年,1950年,74歳,寅(とら)
昭和24年,1949年,75歳,丑(うし)
昭和23年,1948年,76歳,子(ね)
昭和22年,1947年,77歳,亥(い)
昭和21年,1946年,78歳,戌(いぬ)
昭和20年,1945年,79歳,酉(とり)
昭和19年,1944年,80歳,申(さる)
昭和18年,1943年,81歳,未(ひつじ)
昭和17年,1942年,82歳,午(うま)
昭和16年,1941年,83歳,巳(み)
昭和15年,1940年,84歳,辰(たつ)
昭和14年,1939年,85歳,卯(う)
昭和13年,1938年,86歳,寅(とら)
昭和12年,1937年,87歳,丑(うし)
昭和11年,1936年,88歳,子(ね)
昭和10年,1935年,89歳,亥(い)
昭和9年,1934年,90歳,戌(いぬ)
昭和8年,1933年,91歳,酉(とり)
昭和7年,1932年,92歳,申(さる)
昭和6年,1931年,93歳,未(ひつじ)
昭和5年,1930年,94歳,午(うま)
昭和4年,1929年,95歳,巳(み)
昭和3年,1928年,96歳,辰(たつ)
昭和2年,1927年,97歳,卯(う)
大正15年 / 昭和元年,1926年,98歳,寅(とら)
大正14年,1925年,99歳,丑(うし)
大正13年,1924年,100歳,子(ね)
大正12年,1923年,101歳,亥(い)
大正11年,1922年,102歳,戌(いぬ)
大正10年,1921年,103歳,酉(とり)
大正9年,1920年,104歳,申(さる)
大正8年,1919年,105歳,未(ひつじ)
大正7年,1918年,106歳,午(うま)
大正6年,1917年,107歳,巳(み)
大正5年,1916年,108歳,辰(たつ)
大正4年,1915年,109歳,卯(う)
大正3年,1914年,110歳,寅(とら)
大正2年,1913年,111歳,丑(うし)
明治45年 / 大正元年,1912年,112歳,子(ね)
明治44年,1911年,113歳,亥(い)
明治43年,1910年,114歳,戌(いぬ)
明治42年,1909年,115歳,酉(とり)
明治41年,1908年,116歳,申(さる)
明治40年,1907年,117歳,未(ひつじ)
明治39年,1906年,118歳,午(うま)
明治38年,1905年,119歳,巳(み)
明治37年,1904年,120歳,辰(たつ)
明治36年,1903年,121歳,卯(う)
明治35年,1902年,122歳,寅(とら)
明治34年,1901年,123歳,丑(うし)
明治33年,1900年,124歳,子(ね)
明治32年,1899年,125歳,亥(い)
明治31年,1898年,126歳,戌(いぬ)
明治30年,1897年,127歳,酉(とり)
明治29年,1896年,128歳,申(さる)
明治28年,1895年,129歳,未(ひつじ)
明治27年,1894年,130歳,午(うま)
明治26年,1893年,131歳,巳(み)
明治25年,1892年,132歳,辰(たつ)
明治24年,1891年,133歳,卯(う)
明治23年,1890年,134歳,寅(とら)
明治22年,1889年,135歳,丑(うし)
明治21年,1888年,136歳,子(ね)
明治20年,1887年,137歳,亥(い)
明治19年,1886年,138歳,戌(いぬ)
明治18年,1885年,139歳,酉(とり)
明治17年,1884年,140歳,申(さる)
明治16年,1883年,141歳,未(ひつじ)
明治15年,1882年,142歳,午(うま)
明治14年,1881年,143歳,巳(み)
明治13年,1880年,144歳,辰(たつ)
明治12年,1879年,145歳,卯(う)
明治11年,1878年,146歳,寅(とら)
明治10年,1877年,147歳,丑(うし)
明治9年,1876年,148歳,子(ね)
明治8年,1875年,149歳,亥(い)
明治7年,1874年,150歳,戌(いぬ)
明治6年,1873年,151歳,酉(とり)
明治5年,1872年,152歳,申(さる)
明治4年,1871年,153歳,未(ひつじ)
明治3年,1870年,154歳,午(うま)
明治2年,1869年,155歳,巳(み)
明治元年 / 明治時代,1868年,156歳,辰(たつ)
慶応3年,1867年,157歳,卯(う)
慶応2年,1866年,158歳,寅(とら)
慶応1年,1865年,159歳,丑(うし)
元治1年,1864年,160歳,子(ね)
文久3年,1863年,161歳,亥(い)
文久2年,1862年,162歳,戌(いぬ)
文久1年,1861年,163歳,酉(とり)
万延1年,1860年,164歳,申(さる)
安政6年,1859年,165歳,未(ひつじ)
安政5年,1858年,166歳,午(うま)
安政4年,1857年,167歳,巳(み)
安政3年,1856年,168歳,辰(たつ)
安政2年,1855年,169歳,卯(う)
安政1年,1854年,170歳,寅(とら)
嘉永6年,1853年,171歳,丑(うし)
嘉永5年,1852年,172歳,子(ね)
嘉永4年,1851年,173歳,亥(い)
嘉永3年,1850年,174歳,戌(いぬ)
嘉永2年,1849年,175歳,酉(とり)
嘉永1年,1848年,176歳,申(さる)
弘化4年,1847年,177歳,未(ひつじ)
弘化3年,1846年,178歳,午(うま)
弘化2年,1845年,179歳,巳(み)
弘化1年,1844年,180歳,辰(たつ)
天保14年,1843年,181歳,卯(う)
天保13年,1842年,182歳,寅(とら)
天保12年,1841年,183歳,丑(うし)
天保11年,1840年,184歳,子(ね)
天保10年,1839年,185歳,亥(い)
天保9年,1838年,186歳,戌(いぬ)
天保8年,1837年,187歳,酉(とり)
天保7年,1836年,188歳,申(さる)
天保6年,1835年,189歳,未(ひつじ)
天保5年,1834年,190歳,午(うま)
天保4年,1833年,191歳,巳(み)
天保3年,1832年,192歳,辰(たつ)
天保2年,1831年,193歳,卯(う)
天保1年,1830年,194歳,寅(とら)
文政12年,1829年,195歳,丑(うし)
文政11年,1828年,196歳,子(ね)
文政10年,1827年,197歳,亥(い)
文政9年,1826年,198歳,戌(いぬ)
文政8年,1825年,199歳,酉(とり)
文政7年,1824年,200歳,申(さる)
文政6年,1823年,201歳,未(ひつじ)
文政5年,1822年,202歳,午(うま)
文政4年,1821年,203歳,巳(み)
文政3年,1820年,204歳,辰(たつ)
文政2年,1819年,205歳,卯(う)
文政1年,1818年,206歳,寅(とら)
文化14年,1817年,207歳,丑(うし)
文化13年,1816年,208歳,子(ね)
文化12年,1815年,209歳,亥(い)
文化11年,1814年,210歳,戌(いぬ)
文化10年,1813年,211歳,酉(とり)
文化9年,1812年,212歳,申(さる)
文化8年,1811年,213歳,未(ひつじ)
文化7年,1810年,214歳,午(うま)
文化6年,1809年,215歳,巳(み)
文化5年,1808年,216歳,辰(たつ)
文化4年,1807年,217歳,卯(う)
文化3年,1806年,218歳,寅(とら)
文化2年,1805年,219歳,丑(うし)
文化1年,1804年,220歳,子(ね)
享和3年,1803年,221歳,亥(い)
享和2年,1802年,222歳,戌(いぬ)
享和1年,1801年,223歳,酉(とり)
寛政12年,1800年,224歳,申(さる)
寛政11年,1799年,225歳,未(ひつじ)
寛政10年,1798年,226歳,午(うま)
寛政9年,1797年,227歳,巳(み)
寛政8年,1796年,228歳,辰(たつ)
寛政7年,1795年,229歳,卯(う)
寛政6年,1794年,230歳,寅(とら)
寛政5年,1793年,231歳,丑(うし)
寛政4年,1792年,232歳,子(ね)
寛政3年,1791年,233歳,亥(い)
寛政2年,1790年,234歳,戌(いぬ)
寛政1年,1789年,235歳,酉(とり)
天明8年,1788年,236歳,申(さる)
天明7年,1787年,237歳,未(ひつじ)
天明6年,1786年,238歳,午(うま)
天明5年,1785年,239歳,巳(み)
天明4年,1784年,240歳,辰(たつ)
天明3年,1783年,241歳,卯(う)
天明2年,1782年,242歳,寅(とら)
天明1年,1781年,243歳,丑(うし)
安永9年,1780年,244歳,子(ね)
安永8年,1779年,245歳,亥(い)
安永7年,1778年,246歳,戌(いぬ)
安永6年,1777年,247歳,酉(とり)
安永5年,1776年,248歳,申(さる)
安永4年,1775年,249歳,未(ひつじ)
安永3年,1774年,250歳,午(うま)
安永2年,1773年,251歳,巳(み)
安永1年,1772年,252歳,辰(たつ)
明和8年,1771年,253歳,卯(う)
明和7年,1770年,254歳,寅(とら)
明和6年,1769年,255歳,丑(うし)
明和5年,1768年,256歳,子(ね)
明和4年,1767年,257歳,亥(い)
明和3年,1766年,258歳,戌(いぬ)
明和2年,1765年,259歳,酉(とり)
明和1年,1764年,260歳,申(さる)
宝歴13年,1763年,261歳,未(ひつじ)
宝歴12年,1762年,262歳,午(うま)
宝歴11年,1761年,263歳,巳(み)
宝歴10年,1760年,264歳,辰(たつ)
宝歴9年,1759年,265歳,卯(う)
宝歴8年,1758年,266歳,寅(とら)
宝歴7年,1757年,267歳,丑(うし)
宝歴6年,1756年,268歳,子(ね)
宝歴5年,1755年,269歳,亥(い)
宝歴4年,1754年,270歳,戌(いぬ)
宝歴3年,1753年,271歳,酉(とり)
宝歴2年,1752年,272歳,申(さる)
宝歴1年,1751年,273歳,未(ひつじ)
寛延3年,1750年,274歳,午(うま)
寛延2年,1749年,275歳,巳(み)
寛延1年,1748年,276歳,辰(たつ)
延享4年,1747年,277歳,卯(う)
延享3年,1746年,278歳,寅(とら)
延享2年,1745年,279歳,丑(うし)
延享1年,1744年,280歳,子(ね)
寛保3年,1743年,281歳,亥(い)
寛保2年,1742年,282歳,戌(いぬ)
寛保1年,1741年,283歳,酉(とり)
元文5年,1740年,284歳,申(さる)
元文4年,1739年,285歳,未(ひつじ)
元文3年,1738年,286歳,午(うま)
元文2年,1737年,287歳,巳(み)
元文1年,1736年,288歳,辰(たつ)
享保20年,1735年,289歳,卯(う)
享保19年,1734年,290歳,寅(とら)
享保18年,1733年,291歳,丑(うし)
享保17年,1732年,292歳,子(ね)
享保16年,1731年,293歳,亥(い)
享保15年,1730年,294歳,戌(いぬ)
享保14年,1729年,295歳,酉(とり)
享保13年,1728年,296歳,申(さる)
享保12年,1727年,297歳,未(ひつじ)
享保11年,1726年,298歳,午(うま)
享保10年,1725年,299歳,巳(み)
享保9年,1724年,300歳,辰(たつ)
享保8年,1723年,301歳,卯(う)
享保7年,1722年,302歳,寅(とら)
享保6年,1721年,303歳,丑(うし)
享保5年,1720年,304歳,子(ね)
享保4年,1719年,305歳,亥(い)
享保3年,1718年,306歳,戌(いぬ)
享保2年,1717年,307歳,酉(とり)
享保1年,1716年,308歳,申(さる)
正徳5年,1715年,309歳,未(ひつじ)
正徳4年,1714年,310歳,午(うま)
正徳3年,1713年,311歳,巳(み)
正徳2年,1712年,312歳,辰(たつ)
正徳1年,1711年,313歳,卯(う)
宝永7年,1710年,314歳,寅(とら)
宝永6年,1709年,315歳,丑(うし)
宝永5年,1708年,316歳,子(ね)
宝永4年,1707年,317歳,亥(い)
宝永3年,1706年,318歳,戌(いぬ)
宝永2年,1705年,319歳,酉(とり)
宝永1年,1704年,320歳,申(さる)
元禄16年,1703年,321歳,未(ひつじ)
元禄15年,1702年,322歳,午(うま)
元禄14年,1701年,323歳,巳(み)
元禄13年,1700年,324歳,辰(たつ)
元禄12年,1699年,325歳,卯(う)
元禄11年,1698年,326歳,寅(とら)
元禄10年,1697年,327歳,丑(うし)
元禄9年,1696年,328歳,子(ね)
元禄8年,1695年,329歳,亥(い)
元禄7年,1694年,330歳,戌(いぬ)
元禄6年,1693年,331歳,酉(とり)
元禄5年,1692年,332歳,申(さる)
元禄4年,1691年,333歳,未(ひつじ)
元禄3年,1690年,334歳,午(うま)
元禄2年,1689年,335歳,巳(み)
元禄1年,1688年,336歳,辰(たつ)
貞享4年,1687年,337歳,卯(う)
貞享3年,1686年,338歳,寅(とら)
貞享2年,1685年,339歳,丑(うし)
貞享1年,1684年,340歳,子(ね)
天和3年,1683年,341歳,亥(い)
天和2年,1682年,342歳,戌(いぬ)
天和1年,1681年,343歳,酉(とり)
延宝8年,1680年,344歳,申(さる)
延宝7年,1679年,345歳,未(ひつじ)
延宝6年,1678年,346歳,午(うま)
延宝5年,1677年,347歳,巳(み)
延宝4年,1676年,348歳,辰(たつ)
延宝3年,1675年,349歳,卯(う)
延宝2年,1674年,350歳,寅(とら)
延宝1年,1673年,351歳,丑(うし)
寛文12年,1672年,352歳,子(ね)
寛文11年,1671年,353歳,亥(い)
寛文10年,1670年,354歳,戌(いぬ)
寛文9年,1669年,355歳,酉(とり)
寛文8年,1668年,356歳,申(さる)
寛文7年,1667年,357歳,未(ひつじ)
寛文6年,1666年,358歳,午(うま)
寛文5年,1665年,359歳,巳(み)
寛文4年,1664年,360歳,辰(たつ)
寛文3年,1663年,361歳,卯(う)
寛文2年,1662年,362歳,寅(とら)
寛文1年,1661年,363歳,丑(うし)
万治3年,1660年,364歳,子(ね)
万治2年,1659年,365歳,亥(い)
万治1年,1658年,366歳,戌(いぬ)
明暦3年,1657年,367歳,酉(とり)
明暦2年,1656年,368歳,申(さる)
明暦1年,1655年,369歳,未(ひつじ)
承応3年,1654年,370歳,午(うま)
承応2年,1653年,371歳,巳(み)
承応1年,1652年,372歳,辰(たつ)
慶安4年,1651年,373歳,卯(う)
慶安3年,1650年,374歳,寅(とら)
慶安2年,1649年,375歳,丑(うし)
慶安1年,1648年,376歳,子(ね)
正保4年,1647年,377歳,亥(い)
正保3年,1646年,378歳,戌(いぬ)
正保2年,1645年,379歳,酉(とり)
正保1年,1644年,380歳,申(さる)
寛永20年,1643年,381歳,未(ひつじ)
寛永19年,1642年,382歳,午(うま)
寛永18年,1641年,383歳,巳(み)
寛永17年,1640年,384歳,辰(たつ)
寛永16年,1639年,385歳,卯(う)
寛永15年,1638年,386歳,寅(とら)
寛永14年,1637年,387歳,丑(うし)
寛永13年,1636年,388歳,子(ね)
寛永12年,1635年,389歳,亥(い)
寛永11年,1634年,390歳,戌(いぬ)
寛永10年,1633年,391歳,酉(とり)
寛永9年,1632年,392歳,申(さる)
寛永8年,1631年,393歳,未(ひつじ)
寛永7年,1630年,394歳,午(うま)
寛永6年,1629年,395歳,巳(み)
寛永5年,1628年,396歳,辰(たつ)
寛永4年,1627年,397歳,卯(う)
寛永3年,1626年,398歳,寅(とら)
寛永2年,1625年,399歳,丑(うし)
寛永1年,1624年,400歳,子(ね)
元和9年,1623年,401歳,亥(い)
元和8年,1622年,402歳,戌(いぬ)
元和7年,1621年,403歳,酉(とり)
元和6年,1620年,404歳,申(さる)
元和5年,1619年,405歳,未(ひつじ)
元和4年,1618年,406歳,午(うま)
元和3年,1617年,407歳,巳(み)
元和2年,1616年,408歳,辰(たつ)
元和1年,1615年,409歳,卯(う)
慶長19年,1614年,410歳,寅(とら)
慶長18年,1613年,411歳,丑(うし)
慶長17年,1612年,412歳,子(ね)
慶長16年,1611年,413歳,亥(い)
慶長15年,1610年,414歳,戌(いぬ)
慶長14年,1609年,415歳,酉(とり)
慶長13年,1608年,416歳,申(さる)
慶長12年,1607年,417歳,未(ひつじ)
慶長11年,1606年,418歳,午(うま)
慶長10年,1605年,419歳,巳(み)
慶長9年,1604年,420歳,辰(たつ)
慶長8年 /江戸時代,1603年,421歳,卯(う)
慶長7年,1602年,422歳,寅(とら)
慶長6年,1601年,423歳,丑(うし)
慶長5年,1600年,424歳,子(ね)
慶長4年,1599年,425歳,亥(い)
慶長3年,1598年,426歳,戌(いぬ)
慶長2年,1597年,427歳,酉(とり)
慶長1年,1596年,428歳,申(さる)
文禄4年,1595年,429歳,未(ひつじ)
文禄3年,1594年,430歳,午(うま)
文禄2年,1593年,431歳,巳(み)
文禄1年,1592年,432歳,辰(たつ)

最後に

Excel VBAを使ってCSVファイルを取り込む処理について、UserFormを使って処理の進捗状況をリアルタイムで表示する方法を解説しました。この手法は大量のデータを扱う際に特に有効に機能します。ぜひ活用してみてください。