希望どおりにインターリーブして貼り付ける直接的な方法はありません。ただし、一時的な VBA を作成して、必要なことを行うことができます。
たとえば、次のことができます。
- Excel ファイルに VBA プロシージャ (以下のようなもの) を作成します。
- それにキーボード ショートカット (例: Ctrl+Q) を割り当てます。
- これを行うには、Alt+F8 を押してマクロを選択し、[オプション] をクリックします。
- コピーするセルを選択し、Ctrl+C を押します。
- 貼り付けたいセルを選択し、Ctrl+Q (または任意のキーボード ショートカット) を押します。
- コピーする回数を入力します。(あなたの例では、それは 3 になります。)
- ワモ!:D
- これで、VBA プロシージャを削除できます。:)
VBA コード:
Sub PasteAsInterleave()
Dim startCell As Range
Dim endCell As Range
Dim firstRow As Range
Dim pasteCount As Long
Dim rowCount As Long
Dim colCount As Long
Dim i As Long
Dim j As Long
Dim inputValue As String
If Application.CutCopyMode = False Then Exit Sub
'Get number of times to copy.
inputValue = InputBox("Enter number of times to paste interleaved:", _
"Paste Interleave", "")
If inputValue = "" Then Exit Sub 'Cancelled by user.
On Error GoTo Error
pasteCount = CInt(inputValue)
If pasteCount <= 0 Then Exit Sub
On Error GoTo 0
'Paste first set.
ActiveSheet.Paste
If pasteCount = 1 Then Exit Sub
'Get pasted data information.
Set startCell = Selection.Cells(1)
Set endCell = Selection.Cells(Selection.Cells.count)
rowCount = endCell.Row - startCell.Row + 1
colCount = endCell.Column - startCell.Column + 1
Set firstRow = Range(startCell, startCell.Offset(0, colCount - 1))
'Paste everything else while rearranging rows.
For i = rowCount To 1 Step -1
firstRow.Offset(i - 1, 0).Copy
For j = 1 To pasteCount
startCell.Offset(pasteCount * i - j, 0).PasteSpecial
Next j
Next i
'Select the pasted cells.
Application.CutCopyMode = False
Range(startCell, startCell.Offset(rowCount * pasteCount - 1, colCount - 1)).Select
Exit Sub
Error:
MsgBox "Invalid number."
End Sub