Excel便利ショートカット20選 + コピペで使えるVBA小技10選

PC・Mac

※本記事にはアフィリエイトリンクが含まれます

Excelの残業、その半分はショートカット知らないだけです。

結論。20個のショートカットを体で覚えると、月10時間は浮きます。さらに、定型作業はVBAをコピペするだけで自動化できる。本記事は「Excelやらされて残業してる人」のための、覚えるべきキーと貼るだけVBA小技集です。プログラミング知識ゼロでもOK。

動作確認環境: Windows 版 Excel 2019 / Microsoft 365(2026年5月時点)。Mac 版は一部VBAが動かないので後述します。

覚えるべきショートカット20選(優先順)

毎日使う基本7個

キー 動作
Ctrl + ; 今日の日付を入力
Ctrl + : 今の時刻を入力
Ctrl + Shift + L フィルター ON/OFF
Ctrl + T 選択範囲をテーブル化
Alt + Enter セル内で改行
Ctrl + Shift + 矢印 データ末尾まで一気に選択
Ctrl + Page Down/Up シート切り替え

知ると劇的に楽になる7個

キー 動作
F4 絶対参照($A$1)切替・直前操作の繰り返し
Ctrl + D 上のセルをコピー(数式含む)
Ctrl + R 左のセルをコピー
Ctrl + Shift + + 行・列の挿入
Ctrl + - 行・列の削除
Ctrl + Shift + $ 通貨形式
Ctrl + Shift + % パーセント形式

玄人っぽくなる6個

キー 動作
Ctrl + E フラッシュフィル(Excel 2013以降のみ)
Ctrl + 1 セルの書式設定を即開く
Ctrl + 9 選択行を非表示
Ctrl + 0 選択列を非表示 ※
Alt + = SUM自動入力
F2 セル編集モード

Ctrl + 0 は Windows の IME(言語バー)キーと衝突して効かないことがあります。その場合は右クリック→「非表示」が確実です。

特に Ctrl + E(フラッシュフィル)は革命的。「山田 太郎」を「山田太郎」にまとめる、メールアドレスから@の前を抜き出す、みたいなパターン抽出をExcelが自動で察します。

コピペで使えるVBA小技10選

VBAエディタは Alt + F11 で開きます。エディタ画面で 「挿入」→「標準モジュール」 を選んでから、以下のコードを貼り付けてください。マクロを実行するには F5

初めて使う場合、Excelの「マクロのセキュリティ警告」が出ることがあります。「マクロを有効にする」を選んでから進めてください。

1. 全シートの先頭セルにジャンプ

Sub GoToA1AllSheets()
    Dim ws As Worksheet
    For Each ws In ActiveWorkbook.Worksheets
        ws.Activate
        Range("A1").Select
    Next ws
End Sub

誰かに渡す前のお作法。地味だけど評価上がります。

2. 空白行を一括削除

Sub DeleteBlankRows()
    Dim r As Long
    For r = Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1
        If WorksheetFunction.CountA(Rows(r)) = 0 Then Rows(r).Delete
    Next r
End Sub

※ A列の最終行を基準にしているので、A列が空でB列以降にデータがある行は対象外です。表全体で判定したい場合は UsedRange.Rows.Count を使ってください。

3. 全シートをPDF化

Sub ExportAllSheetsPDF()
    Dim ws As Worksheet, names() As String, i As Long
    ReDim names(ActiveWorkbook.Worksheets.Count - 1)
    For Each ws In ActiveWorkbook.Worksheets
        names(i) = ws.Name
        i = i + 1
    Next ws
    ActiveWorkbook.Worksheets(names).Select
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
        Filename:=ThisWorkbook.Path & "\全シート.pdf"
End Sub

会議資料の出力時に超便利。全シートを選択した状態で書き出します。手作業30秒が1クリックに。

4. 選択範囲を値だけにする

Sub PasteAsValues()
    Selection.Value = Selection.Value
End Sub

数式を一気に値化したい時に。1行で確実に動きます。

5. シートの保護を一括設定

Sub ProtectAllSheets()
    Dim pw As String
    pw = InputBox("保護用パスワードを入力してください(忘れると標準機能では解除不能)")
    If pw = "" Then Exit Sub
    Dim ws As Worksheet
    For Each ws In ActiveWorkbook.Worksheets
        ws.Protect Password:=pw
    Next ws
End Sub

⚠️ パスワードは絶対に忘れないでください。Excelの標準機能では解除できません。安全のため、実行時に都度入力させる形にしています。

6. 重複行を削除

Sub RemoveDuplicates()
    ActiveSheet.Range("A1").CurrentRegion.RemoveDuplicates _
        Columns:=Array(1), Header:=xlYes
End Sub

CurrentRegion は周囲に空行・空列がある範囲を自動で認識します。表の隣にデータがあると一緒に巻き込まれるので注意してください。

7. 全シートの全列幅を自動調整

Sub AutoFitAllSheets()
    Dim ws As Worksheet
    For Each ws In ActiveWorkbook.Worksheets
        ws.Cells.EntireColumn.AutoFit
    Next ws
End Sub

8. 今開いてるBookを日付付きで保存

Sub SaveWithDate()
    Dim base As String, ext As String, p As Long
    p = InStrRev(ThisWorkbook.Name, ".")
    base = Left(ThisWorkbook.Name, p - 1)
    ext = Mid(ThisWorkbook.Name, p)
    ThisWorkbook.SaveAs ThisWorkbook.Path & "\" & base & _
        "_" & Format(Now, "yyyymmdd_hhmm") & ext, _
        FileFormat:=ThisWorkbook.FileFormat
End Sub

拡張子(.xlsx / .xlsm / .xlsb)を保持したまま、現在の日時付きで複製保存します。

9. 選択セルをアラート色(黄)に

Sub HighlightYellow()
    Selection.Interior.Color = RGB(255, 255, 0)
End Sub

戻したい時は Selection.Interior.ColorIndex = xlNone を実行するか、上書きで別の色を指定してください。

10. 別シートに値だけ転記

Sub CopyValuesToSheet2()
    Sheets("Sheet1").Range("A1:Z100").Copy
    Sheets("Sheet2").Range("A1").PasteSpecial Paste:=xlPasteValues
    Application.CutCopyMode = False
End Sub

※ シート名がハードコードされています。自分の環境に合わせて "Sheet1" / "Sheet2" を書き換えてください。

Mac で Excel 使ってる人へ

正直に書くと、ショートカットは Cmd 置換でだいたい同じですが、VBAはMac版Excelだと挙動が不安定です。FileSystemObject や Outlook.Application など、Windows 依存のオブジェクトを使うコードはエラーになります。

もし Mac 中心の作業なら、Google スプレッドシート + Apps Script の方が安定して動きます。同じ「ボタンで自動化」できて、しかもブラウザだけで完結。詳しくは「Googleスプレッドシート × ChatGPT で業務自動化」をどうぞ。

VBA で物足りなくなったら(エンジニア向け)

VBAの限界に達したら、外部連携が現実的です:

  • Python + openpyxl / pandas: Excel ファイルをPythonで直接編集
  • Microsoft Power Automate: GUI で業務フロー組める
  • Azure Logic Apps: クラウドでExcelファイルの定期処理を自動化
  • GitHub Actions + Python: 無料でExcel処理を毎日自動実行

「同じ作業を月100回やる人」は、VBAじゃなく Python に行きましょう。学習コストは1〜2週間ですが、その後の自動化範囲が桁違いに広がります。Udemyの「Excel VBA」コース一覧から、Pythonへ橋渡しする講座が¥1,500前後で買えます(セール時)。

まとめ:Excelの残業ゼロ宣言

覚えるショートカットは20個。VBAは10個コピペすれば、定型作業はだいたい片付きます。

これでも足りない人は、Excel以外のツール(Sheets / Python / Power Automate)に乗り換えるサイン。Microsoft 365 個人プランを月¥1,490払い続ける価値が本当にあるか、見直すきっかけにどうぞ。

関連書籍やコース:

  • Excel関数の本: Amazonで「Excel関数 辞典」検索(関数の網羅性ならコレ一択)
  • VBA入門コース: UdemyのExcel VBAコース(セールで¥1,500前後)
  • Microsoft 365 個人: 公式サイトで月¥1,490

合わせて読みたい関連記事

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