名簿や請求、利用状況などの確認のために大量のデータを扱うことが多い。ある程度簡潔にできるものをExcelで、それ以上のものはAccessで、とまあ試行錯誤するわけですが、Excelのファイル一つで10MBを超えるものもでてきてデータの入力や削除だけでも再計算にはそれなりの時間がかかるようになってきた。
いつかはWebのデータベースを構築したいなと思うもののそれもまた大掛かりなことなので、まずはマクロを使って大量の関数から離れていこうと思い立つ。そのメモです。
Sub てすと()
 MsgBox "開始します"
 Dim dotask As Boolean
 Dim i As Integer 'ワークシートの順送りをカウント
 For i = 1 To Worksheets.Count
  Worksheets(i).Select 'ワークシートを選択
  dotask = Cells.Replace("a", "b") 'シート全体で置換
 Next ' Forに対応
 MsgBox "処理が終了しました"
End Sub
- Sub() 〜 End Sub:マクロを作成するときのおまじない
 - MsgBox:メッセージを表示する(一旦そこで止まる)
 - Dim:変数定義
 - For 〜 Next:条件内での繰り返し
 
ファイル内の全てのシートでaをbに置き換えるというマクロです。実行するとどんどんシートが進んでいく様子がおもしろいです。