3
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【VBA】事務職で便利なマクロ集

Last updated at Posted at 2020-12-09

概要

事務の仕事をしています。 職場によっては、データとしての体をなしていないデータをExcel上でまとめたり、セルの結合で構成された様式にデータを転写する作業をしたりすることもあると思います。 その作業の中でよく使っているExcelのマクロを紹介します。 個人用マクロブックに保存してショートカットキーを設定すれば特定の作業が楽になるかもしれません。

よく使うマクロ達

選択範囲の文字を全て半角にする

全角・半角入り乱れたデータをもらった時によく使ってます。
Sub half_width()
    Application.ScreenUpdating = False
    For Each n In Selection
        n.Value = Application.WorksheetFunction.Asc(n.Value)
    Next
    Application.ScreenUpdating = True
End Sub

選択範囲の文字を全て全角にする

全角文字しか受け付けない業務システム上にデータを貼り付ける時によく使います。
Sub half_width()
    Application.ScreenUpdating = False
    For Each n In Selection
        n.Value = Application.WorksheetFunction.Asc(n.Value)
    Next
    Application.ScreenUpdating = True
End Sub

選択範囲の数字を全て税込価格にする

これはよく使うと思います。
Sub tax()
    Application.ScreenUpdating = False
    row_n = Selection.Row
    For Each a In Selection
        If IsNumeric(a.Value) And a.Value <> "" Then
            a.Value = Application.WorksheetFunction.RoundDown(a.Value * 1.1, 0)
        End If
    Next
    Application.ScreenUpdating = True
End Sub

いい感じの表を作る

テーブルを使うまでもない表をぱっと作る時によく使ってます。
Sub line()
    Selection.Borders.LineStyle = xlContinuous
    Range(Cells(Selection(1).Row, Selection(1).Column), Cells(Selection(Selection.Count).Row - 1, Selection(Selection.Count).Column)) _
    .Borders(xlEdgeBottom).LineStyle = xlDouble
    Selection.Borders(xlEdgeTop).Weight = xlMedium
    Selection.Borders(xlEdgeBottom).Weight = xlMedium
    Selection.Borders(xlEdgeLeft).Weight = xlMedium
    Selection.Borders(xlEdgeRight).Weight = xlMedium
    With Range(Cells(Selection(1).Row, Selection(1).Column), Cells(Selection(1).Row, Selection(Selection.Count).Column))
        .HorizontalAlignment = xlCenter
        .Interior.ColorIndex = 27
    End With
End Sub

こういうデータを
image.png
こうできます
image.png

xlA1形式とxlR1C1を入れ替える

セルの結合まみれの様式にデータを転写するマクロを作る時は A1参照形式派の人もR1C1形式に切り替えるのではないでしょうか? その切り替えを簡単にできるマクロです。
Sub switch_R1C1()
    If Application.ReferenceStyle = xlA1 Then
        Application.ReferenceStyle = xlR1C1
    Else
        Application.ReferenceStyle = xlA1
    End If
End Sub

最後に

少しだけですがよく使うものをピックアップして紹介させてもらいました。 お役に立てればうれしいです。
3
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?