見出し画像

Excel 事務にはデータに一列ごとに空白列を入れたいときがある

経理や労務の人でデータのチェックやるときってひたすら空白列いれてVlookup関数埋めていくってこと度々ありませんか?
私はしょっちゅうです。ショートカットキーを使って「Ctrl + +」連打するのもうざい。うざい。とにかくうざいのでマクロを組みました。

選択した範囲で一列ごとに空白列を入れる

ちなみに列(Column)って縦長に伸びる範囲(↓)ね。そんなん当たり前やろって思うかもしれないけど行(Row)と列(Column)の違いは明確にあたしは書きますよ。そんなこんなでホイっとね♪

Sub OneByOneColumnsInsert()
   If Selection.Rows.Count > 1 Then Exit Sub
   With Application
       .ScreenUpdating = False
       .EnableEvents = False
   End With
   Dim RangeArray As Variant, SelectRange As Range
   Dim i As Integer: i = 0
   ReDim RangeArray(Selection.Columns.Count)
   For Each SelectRange In Selection
       RangeArray(i) = SelectRange.Address(RowAbsolute:=False, ColumnAbsolute:=False)
       i = i + 1
   Next SelectRange
   Dim RangeString As String: RangeString = Join(RangeArray, ",")
   If Len(RangeString) > 255 Then
       With Application
           .ScreenUpdating = True
           .EnableEvents = True
       End With
       MsgBox "文字数の限界です。文字数:" & Len(RangeString), vbCritical
       Exit Sub
   End If
   RangeString = Left(RangeString, Len(RangeString) - 1)
   Range(RangeString).Select
   Selection.EntireColumn.Insert
   With Application
       .ScreenUpdating = True
       .EnableEvents = True
   End With
End Sub

プロシージャ名がダサいのは悪しからず。まあ仕様ですよ。「ONE By ONE」といったらこれですよね

ナーナナナナーと思わず叫びたくなりますが一旦置いておいて。

説明+注意

選択した範囲に一列ずつ空白列を入れていくコードです。
選択範囲は横長ぁーに選択してね。一行限定。列数は無限・・・いや違う!!

制限あります!

このコードは「B2,C2,D2・・・・」みたいに区切って、選択するセルのアドレスをダーっと書いていって最終的に選択して列まとめて挿入しているんですけど、「B2,C2,D2・・・・」みたいなところ、これ文字数制限あり。
255字以上は無理なんで長すぎる範囲は無理よ。

分割して使ってね。
ちなみにテストデータ用に作った選択したセルのアドレスをダーっと書いていくコードはこちら

選択したセルのアドレスを一気に入力する

Sub CellsAddressGet()
   Dim SelectRange As Range
   With Application
       .ScreenUpdating = False
       .EnableEvents = False
   End With
   For Each SelectRange In Selection
       SelectRange = SelectRange.Address
   Next SelectRange
   With Application
       .ScreenUpdating = True
       .EnableEvents = True
   End With
End Sub

Cell関数使えばいいんですけどね。使い勝手ちょい悪だからマクロ書いちゃった。私列ごとの指定やるから(「A:A」みたいない)それ用のコードも後で書こー。

この記事が気に入ったらサポートをしてみませんか?