![見出し画像](https://assets.st-note.com/production/uploads/images/51049703/rectangle_large_type_2_d7564b58810c3844cdb4beb383bf28e5.jpeg?width=1200)
列幅・行間を自動調整するVBA【エクセル作業の効率アップ】
エクセルを使って資料を作成するとき、列幅や行間を調整することって頻繁にありますよね。
私は、調整していくうちに元に戻せなくなり、資料がぐちゃぐちゃになってしまった!という経験を何度もしてきました。
こんな失敗を繰り返してきた私が開発したのが、列幅と行間を原図の通りに自動調整するVBAです。
このVBAを利用するようになってから、キレイな資料を効率よく作成することができるようになりました。
このnoteの最後では、列幅・行間を自動調整するVBAをダウンロードして使用することが可能です。気になる方は是非ダウンロードをよろしくお願いします。
列幅・行間を自動調整するVBAとは
原図の列幅・行間の情報を取得し、それを編集中のデータに反映させる!というものです。下記の動画で列幅・行間を自動調整するVBAのがどのような動きをするのか紹介しています。
このVBAの1番の特徴は、セルに入力した値を消去せずに列幅・行間が調整できる!ということです。セルに情報を入力し終えてから列幅・行間を原図の通り戻すときに便利です。
列幅・行間を自動調整するVBAはこんな人におすすめ
・列幅、行間を調整することが多い
・決められた様式を編集する作業が多い
・印刷作業が多い
上記3つの項目に当てはまる方は、列幅・行間を自動調整するVBAの導入がおすすめです。
列や行の挿入が禁止されているエクセルファイルでは、列幅や行間を調整するしかありません。いつでも、列幅・行間を原図のとおり元に戻せる!というだけで積極的に編集できるようになります。
さらに、上書き保存したあとでも、原図通りの様式に戻すことが可能なので、数日にわたるような資料作成でも使えます。
原図sheetから列幅・行間を取得するVBAの導入方法
原図の準備
あらかじめ、「原図」を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の導入方法
原図の準備
あらかじめ、「原図」をエクセルファイルに作っておきます。
・原図を登録した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行目に原図となるエクセルファイル名を指定しなければならないので注意が必要です。
仕事の効率が上がった体験談
私の会社では、様式が決められたエクセルファイルの編集作業がいっぱいあります。いろんな人がエクセルファイルを使い回し、編集していくうちに、列幅や行間がぐちゃぐちゃになることが頻繁に発生します。長いテキストを入力したり、印刷範囲を調整したりするため仕方がありません。
「列幅・行間を調整しても印刷範囲が合わない。様式を原図に戻してから調整したい。しかしセルに入力された値は消したくない」
私の職場では、このように考えてながら作業をしている方がほとんどで、聞き取り調査をすると、原図をコピーし、入力作業をやり直している!という実態がありました。
入力作業のやり直しは、作業効率の低下、編集のし忘れに繋がります。
列幅・行間を原図に戻すVBAを設定するだけで、編集ミスが減り作業効率をアップさせることができました。
同僚から、「このVBAって使わないことがほとんどだけど、いつでも原図に戻せるから積極的に編集できるようになってストレスが軽減した。常に利用するVBAではないけど、あると便利」という評価をもらいました。
気になる方は列幅・行間を原図のとおり自動調整するVBAの導入を検討してみてください。
列幅・行間を自動調整するVBAのダウンロード
このnoteでは、上記で紹介している列幅・行間を原図の通り自動調整するVBAが設定されたエクセルファイルをダウンロードしてお使いいただけます。
この記事が気に入ったらサポートをしてみませんか?