- 公開日:
Excel VBAで列を挿入する方法
この記事では、Excel VBAで列を挿入する方法をご紹介します。
VBAで列の挿入を自動化することで作業のミスを減らすことができます。
以下では、選択した右隣りの列にVBAで一列挿入する方法と複数列を挿入する方法に分けてご紹介しています。
開発タブを表示させる
今回は、VBAを使用するので上記の画像のような「開発」タブが表示されていない場合は、まず「開発」タブを表示させましょう。
詳細は、以下の記事をご確認ください。
一列を挿入するコード
VBAで一列挿入するコードを下記に記載するので、コピーして使用してください。
Sub 右隣りに一列挿入する()
Dim selectedRange As Range
Dim insertColumn As Range
' 選択した列を取得
Set selectedRange = Selection.Columns
' 選択した列の右隣に新しい列を挿入
Set insertColumn = selectedRange.Offset(0, 1)
insertColumn.EntireColumn.Insert
End Sub
上記は、任意の列の右側に一列挿入するコードです。
マクロを実行する前に任意の列を選択すれば、どの列でも挿入することができます。
選択した右隣りの列にVBAで一列挿入する方法
任意の列の右隣りに一列挿入する方法をご紹介します。挿入する列を指定するのではなく変数を使っているので、挿入する列を毎回書き換える必要がありません。
①開発タブ、②Visual Basicの順に選択します。
「Microsoft Visual Basic for Applications」が開きました。①挿入タブ、②標準モジュールの順に選択します。
標準モジュールが開きました。上記セクション「一列を挿入するコード」をコピーして貼り付けます。
作成したマクロを保存します。①ファイルタブ、②上書き保存の順に選択します。
「名前を付けて保存」ダイアログボックスが表示されました。①保存先(例:デスクトップ)を選択します。②ファイル名(例:右隣りに一列挿入する)を入力し、③ファイルの種類でExcelマクロ有効ブックを選択し、④保存ボタンを押します。
Excelシートに戻ります。①任意の列番号、②開発タブ、③マクロの順に選択します。
「マクロ」ダイアログボックスが表示されました。①作成したマクロ(例:右隣りに一列挿入する)を選択し、②実行ボタンを押します。
VBAを使って選択した列の右隣りに一列挿入することができました。ただし、書式もコピーされてしまうので必要であれば変更してください。
選択した右隣りの列にVBAで複数列を挿入する方法
以下では、任意の列の右隣りに複数列挿入する方法をご紹介します。
①開発タブ、②Visual Basicの順に選択します。
「Microsoft Visual Basic for Applications」が開きました。
①挿入タブ、②標準モジュールの順に選択します。
標準モジュールが開きました。
以下のコードをコピーしてモジュールに貼り付けます。
Sub 右隣りに3列挿入する()
Dim selectedRange As Range
Dim insertColumns As Range
Dim numOfColumns As Integer
' 挿入する列の数を指定
numOfColumns = 3
' 選択した列を取得
Set selectedRange = Selection.Columns
' 選択した列の右隣に複数の列を挿入
Set insertColumns = selectedRange.Offset(0, 1).Resize(, numOfColumns)
insertColumns.EntireColumn.Insert
End Sub
上記のコードは、挿入する列の数を3列で指定していますが、任意の数に変更して使ってください。
作成したマクロを保存します。
①ファイルタブ、②上書き保存の順に選択します。
その際に、「次の機能はマクロなしのブックには保存できません」というダイアログボックスが表示された場合は、「いいえ」を選択してください。
「名前を付けて保存」ダイアログボックスが表示されました。
①保存先(例:デスクトップ)を選択し、②ファイル名(例:右隣りに3列挿入する)を入力します。③ファイルの種類でExcelマクロ有効ブックを選択し、④保存ボタンを押します。
Excelシートに戻ります。
①開発タブ、②マクロの順に選択します。
「マクロ」ダイアログボックスが表示されました。
①作成したマクロ(例:右隣りに3列挿入する)を選択し、②実行ボタンを押します。
VBAを使って選択した列の右隣りに3列挿入することができました。
ただし、書式もコピーされてしまうので必要であれば変更してください。