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. 使用方法
- ExcelのVBAエディタを開きます。
- 新しいモジュールを挿入し、上記のコードをコピー&ペーストします。
- エディタを閉じて、Excelに戻ります。
- 開いているブックでAlt + F8キーを押し、マクロダイアログボックスを表示させます。
- 「CopyMultipleRowHeightsInput」マクロを選択し、「実行」ボタンをクリックします。
- インプットボックスが表示されるので、コピー元の開始行、コピー元の終了行、コピー先の開始行を入力して、コピーを実行してください。
これで、指定した範囲の行の高さがコピーされ、指定した位置にペーストされます。
3. まとめ
今回は、Excel VBAを使用して複数行の高さをコピー&ペーストする方法を紹介しました。さらに、インプットボックスを用いて、コピー元の開始行、コピー元の終了行、およびコピー先の開始行を指定できるようにしました。この方法を使用することで、行の高さを素早く簡単にコピー&ペーストできます。
コメント