マメ父ちゃん
列幅・行間を自動調整するVBA【エクセル作業の効率アップ】
見出し画像

列幅・行間を自動調整するVBA【エクセル作業の効率アップ】

マメ父ちゃん

エクセルを使って資料を作成するとき、列幅や行間を調整することって頻繁にありますよね。

私は、調整していくうちに元に戻せなくなり、資料がぐちゃぐちゃになってしまった!という経験を何度もしてきました。

こんな失敗を繰り返してきた私が開発したのが、列幅と行間を原図の通りに自動調整するVBAです。

このVBAを利用するようになってから、キレイな資料を効率よく作成することができるようになりました。

このnoteの最後では、列幅・行間を自動調整するVBAをダウンロードして使用することが可能です。気になる方は是非ダウンロードをよろしくお願いします。

列幅・行間を自動調整するVBAとは

原図の列幅・行間の情報を取得し、それを編集中のデータに反映させる!というものです。下記の動画で列幅・行間を自動調整するVBAのがどのような動きをするのか紹介しています。

このVBAの1番の特徴は、セルに入力した値を消去せずに列幅・行間が調整できる!ということです。セルに情報を入力し終えてから列幅・行間を原図の通り戻すときに便利です。


列幅・行間を自動調整するVBAはこんな人におすすめ

画像1

・列幅、行間を調整することが多い

・決められた様式を編集する作業が多い

・印刷作業が多い

上記3つの項目に当てはまる方は、列幅・行間を自動調整するVBAの導入がおすすめです。

列や行の挿入が禁止されているエクセルファイルでは、列幅や行間を調整するしかありません。いつでも、列幅・行間を原図のとおり元に戻せる!というだけで積極的に編集できるようになります。

さらに、上書き保存したあとでも、原図通りの様式に戻すことが可能なので、数日にわたるような資料作成でも使えます。


原図sheetから列幅・行間を取得するVBAの導入方法

原図の準備

画像3

あらかじめ、「原図」をsheetに作っておきます。原図を登録したsheet名を「原図」にしてください。この原図は列幅・行間を取得する元となるデータなので、登録した後は編集しないでください。

サンプルVBA

Sub 原図Sheetから列幅を取得し自動調整するVBA()
    Dim Ash As Worksheet
    Set Ash = ThisWorkbook.Worksheets("原図")
    For i = 1 To 50
    retu = Ash.Cells(1, i).ColumnWidth
    ActiveSheet.Cells(1, i).ColumnWidth = retu
    gyo = Ash.Cells(i, 1).RowHeight
    ActiveSheet.Cells(i, 1).RowHeight = gyo
    Next
End Sub

上記サンプルは、「原図」というSheetを取得するVBAです。

3行目に原図となるSheet名を指定しなければならないので注意が必要です。


原図エクセルファイルから列幅・行間を取得するVBAの導入方法

原図の準備

画像4

あらかじめ、「原図」をエクセルファイルに作っておきます。

・原図を登録したsheet名を「原図」にする

・原図エクセルファイルの「保存場所」を指定

・原図エクセルファイルを登録後、編集しない

この原図は列幅・行間を取得する元となるデータなので、登録した後は編集しないでください。


サンプルVBA

Sub 列幅をエクセルファイルから取得()
   Dim Filepath
   Filepath = "C:\Users\Desktop\Excel\列幅取得\原図.xlsm"
   If Dir(Filepath) = "" Then
   MsgBox "指定したファイルは存在しない"
   Exit Sub
   End If
   Dim Abook As Workbook
   Set Abook = Workbooks.Open(Filepath)
   ThisWorkbook.Activate
   Set Abook = Workbooks("原図.xlsm")
   For i = 1 To 50
   retu = Abook.Sheets("原図").Cells(1, i).ColumnWidth
   ThisWorkbook.ActiveSheet.Cells(1, i).ColumnWidth = retu
   gyo = Abook.Sheets("原図").Cells(i, 1).RowHeight
   ThisWorkbook.ActiveSheet.Cells(i, 1).RowHeight = gyo
   Next
   Application.DisplayAlerts = False
   Workbooks("原図.xlsm").Close
   Application.DisplayAlerts = True
End Sub

上記サンプルは、「原図」というエクセルファイルを取得するVBAです。

3行目と11行目に原図となるエクセルファイル名を指定しなければならないので注意が必要です。

仕事の効率が上がった体験談

画像2

私の会社では、様式が決められたエクセルファイルの編集作業がいっぱいあります。いろんな人がエクセルファイルを使い回し、編集していくうちに、列幅や行間がぐちゃぐちゃになることが頻繁に発生します。長いテキストを入力したり、印刷範囲を調整したりするため仕方がありません。

「列幅・行間を調整しても印刷範囲が合わない。様式を原図に戻してから調整したい。しかしセルに入力された値は消したくない」

私の職場では、このように考えてながら作業をしている方がほとんどで、聞き取り調査をすると、原図をコピーし、入力作業をやり直している!という実態がありました。

入力作業のやり直しは、作業効率の低下、編集のし忘れに繋がります。

列幅・行間を原図に戻すVBAを設定するだけで、編集ミスが減り作業効率をアップさせることができました。

同僚から、「このVBAって使わないことがほとんどだけど、いつでも原図に戻せるから積極的に編集できるようになってストレスが軽減した。常に利用するVBAではないけど、あると便利」という評価をもらいました。

気になる方は列幅・行間を原図のとおり自動調整するVBAの導入を検討してみてください。

列幅・行間を自動調整するVBAのダウンロード

このnoteでは、上記で紹介している列幅・行間を原図の通り自動調整するVBAが設定されたエクセルファイルをダウンロードしてお使いいただけます。

この続きをみるには

この続き: 401文字

列幅・行間を自動調整するVBA【エクセル作業の効率アップ】

マメ父ちゃん

500円

この記事が参加している募集

私の仕事

この記事が気に入ったら、サポートをしてみませんか?
気軽にクリエイターの支援と、記事のオススメができます!
マメ父ちゃん
はじめましてマメ父ちゃんです。 31歳→2児の父ちゃん→北海道住み→電気関係の会社員→ブログ開始8ヶ月→マメblog(https://mamemametochan.com)を運営中。エクセル業務の効率化をテーマに情報発信してます