プログラミング副業で稼ぐ!初心者でもできる仕事内容&始め方
メソル
総務のためのIT活用ガイド
この記事はこんな方におすすめです。
この記事を読めば、マクロの基礎を理解し、最初の自動化を実現できます。
私は総務・情報システム・人事を15年担当してきた中で、マクロで月10時間以上の業務削減を実現しました。最初は私も、プログラミングなんて全く分かりませんでした。
| 手作業 | マクロで自動化 |
|---|---|
| 毎月同じ形式でデータを整形 | ボタン1つで自動整形 |
| 複数シートのデータをコピペ | 自動で集約 |
| 不要な行を1つずつ削除 | 一括削除 |
| 同じ計算を何度も実行 | 自動計算 |
| レポートを毎回同じ形式で作成 | 自動生成 |
| 用語 | 説明 |
|---|---|
| マクロ | Excelの操作を自動化する機能の総称 |
| VBA | マクロを作るためのプログラミング言語 |
🦉 オウル先生「マクロを作る方法は2つあります」
| 方法 | 難易度 | 内容 |
|---|---|---|
| マクロの記録 | ★☆☆☆☆ | 操作を録画して自動化(コード不要) |
| VBAを書く | ★★★☆☆ | コードを直接書いて自動化 |
これで、リボンに「開発」タブが表示されます。
初心者向けの補足
最も簡単な方法、「マクロの記録」を使ってみましょう。
やりたいこと
A1セルに「完了」と入力し、赤色に塗りつぶす
方法1:マクロダイアログから実行
方法2:ボタンを作成して実行
これで、ボタンをクリックするだけでマクロが実行されます。
次は、もう少し実務的なマクロを作ってみましょう。
やりたいこと
Sub 書式統一()
'
' 書式統一 Macro
'
Columns("A:E").Select
With Selection.Font
.Name = "メイリオ"
.Size = 11
End With
Columns("A:E").EntireColumn.AutoFit
End Sub
| コード | 意味 |
|---|---|
| Columns(“A:E”).Select | A列からE列を選択 |
| .Name = “メイリオ” | フォント名をメイリオに |
| .Size = 11 | フォントサイズを11に |
| .AutoFit | 列幅を自動調整 |
記録したマクロを少し修正してみましょう。
現在のコード
Sub 書式統一()
Columns("A:E").Select
With Selection.Font
.Name = "メイリオ"
.Size = 11
End With
Columns("A:E").EntireColumn.AutoFit
End Sub
修正後のコード
Sub 書式統一()
' A列からE列のフォントを統一
Columns("A:E").Select
With Selection.Font
.Name = "メイリオ"
.Size = 11
End With
' 列幅を自動調整
Columns("A:E").EntireColumn.AutoFit
' 追加:1行目(ヘッダー)を太字にする
Rows(1).Font.Bold = True
End Sub
用途:勤怠データや経費データの書式を統一
Sub データ整形()
' データ範囲を選択
Range("A1").CurrentRegion.Select
' フォント統一
With Selection.Font
.Name = "メイリオ"
.Size = 11
End With
' 罫線を引く
Selection.Borders.LineStyle = xlContinuous
' 列幅自動調整
Cells.EntireColumn.AutoFit
MsgBox "データ整形が完了しました!"
End Sub
用途:データの間にある空白行を一括削除
Sub 空白行削除()
Dim i As Long
Dim lastRow As Long
' 最終行を取得
lastRow = Cells(Rows.Count, 1).End(xlUp).Row
' 下から上に向かって空白行を削除
For i = lastRow To 1 Step -1
If Cells(i, 1).Value = "" Then
Rows(i).Delete
End If
Next i
MsgBox "空白行を削除しました!"
End Sub
用途:テンプレートシートをコピーして新しい月のシートを作成
Sub シートコピー()
Dim 新シート名 As String
' 新しいシート名を入力
新シート名 = InputBox("新しいシート名を入力してください", "シートコピー")
If 新シート名 = "" Then Exit Sub
' テンプレートシートをコピー
Sheets("テンプレート").Copy After:=Sheets(Sheets.Count)
' 名前を変更
ActiveSheet.Name = 新シート名
MsgBox 新シート名 & " シートを作成しました!"
End Sub
用途:印刷設定を一括で適用
Sub 印刷設定()
With ActiveSheet.PageSetup
.Orientation = xlLandscape ' 横向き
.Zoom = False ' 倍率を自動調整
.FitToPagesWide = 1 ' 横1ページに収める
.FitToPagesTall = False ' 縦は自動
.CenterHorizontally = True ' 水平中央
.LeftMargin = Application.CentimetersToPoints(1)
.RightMargin = Application.CentimetersToPoints(1)
End With
MsgBox "印刷設定を適用しました!"
End Sub
用途:ファイルを日付付きでバックアップ
Sub バックアップ保存()
Dim 保存先 As String
Dim ファイル名 As String
' 現在の日時を取得
ファイル名 = "バックアップ_" & Format(Now, "yyyymmdd_hhmmss") & ".xlsm"
' 保存先(同じフォルダ)
保存先 = ThisWorkbook.Path & "\" & ファイル名
' 保存
ThisWorkbook.SaveCopyAs 保存先
MsgBox "バックアップを保存しました!" & vbCrLf & 保存先
End Sub
補足
チェックポイント
よくある対処法
| ステップ | 内容 |
|---|---|
| STEP1 | マクロの記録を開始 |
| STEP2 | 自動化したい操作を実行 |
| STEP3 | 記録を停止 → 完成 |
| アクション | 所要時間 |
|---|---|
| 開発タブを表示する | 1分 |
| 簡単なマクロを記録してみる | 5分 |
| ボタンを作成して実行 | 3分 |
無料テンプレートプレゼント🎁
この記事を最後まで読んでくださった方に、「総務で使えるExcelマクロテンプレート5選」を無料プレゼントします。
まずは1本、試してみるところから始めましょう。