Excel VBAで複数行の高さをコピー&ペーストする方法 – インプットボックスを使って指定できるようにする

Excelでは、セルの値や書式だけでなく、行の高さもコピー&ペーストが可能です。今回は、Excel VBAを使って複数行の高さをコピー&ペーストする方法を紹介します。また、インプットボックスを使用して、コピー元の開始行、コピー元の終了行、およびコピー先の開始行を指定できるようにしました。

1. VBAコードの解説

以下のVBAコードでは、インプットボックスを使用して、コピー元の開始行、コピー元の終了行、およびコピー先の開始行を指定できます。

Sub CopyMultipleRowHeightsInput()
' インプットボックスでコピー元の開始行と終了行、コピー先の開始行を指定
Dim sourceStartRow As Long
Dim sourceEndRow As Long
Dim targetStartRow As Long

sourceStartRow = Application.InputBox("コピー元の開始行を入力してください。", "コピー元開始行", Type:=1)
sourceEndRow = Application.InputBox("コピー元の終了行を入力してください。", "コピー元終了行", Type:=1)
targetStartRow = Application.InputBox("コピー先の開始行を入力してください。", "コピー先開始行", Type:=1)

' コピー元とコピー先の行の差分を計算
Dim rowDifference As Long
rowDifference = targetStartRow - sourceStartRow

' コピー元の各行の高さをコピー先に適用
Dim currentRow As Long
For currentRow = sourceStartRow To sourceEndRow
    Rows(currentRow + rowDifference).RowHeight = Rows(currentRow).RowHeight
Next currentRow
End Sub

このコードを実行すると、コピー元の開始行、コピー元の終了行、およびコピー先の開始行を指定するためのインプットボックスが表示されます。必要な値を入力して、コピーを実行してください。

2. 使用方法

  1. ExcelのVBAエディタを開きます。
  2. 新しいモジュールを挿入し、上記のコードをコピー&ペーストします。
  3. エディタを閉じて、Excelに戻ります。
  4. 開いているブックでAlt + F8キーを押し、マクロダイアログボックスを表示させます。
  5. 「CopyMultipleRowHeightsInput」マクロを選択し、「実行」ボタンをクリックします。
  6. インプットボックスが表示されるので、コピー元の開始行、コピー元の終了行、コピー先の開始行を入力して、コピーを実行してください。

これで、指定した範囲の行の高さがコピーされ、指定した位置にペーストされます。

3. まとめ

今回は、Excel VBAを使用して複数行の高さをコピー&ペーストする方法を紹介しました。さらに、インプットボックスを用いて、コピー元の開始行、コピー元の終了行、およびコピー先の開始行を指定できるようにしました。この方法を使用することで、行の高さを素早く簡単にコピー&ペーストできます。

コメント