見出し画像

指定した列数だけ横方向にコピーして直下に貼り付けるよ

この説明は、ChatGPTで作成しています。

このVBAコードは、Excel上で 選択したセル範囲 のデータを指定した列数分、横方向にコピーして、直下に貼り付ける操作を自動で行うものです。


コードの動作について簡単に説明

  1. 選択範囲 からデータを取得します。

  2. 5列分 のデータを横方向に取り出して、そのデータを すぐ下の行 に貼り付けます。

  3. この操作を選択範囲内のセルすべてに対して行います。


コードのポイント

  • Col = 5
    → ここで「5」と設定されているのは、横に5列分のデータをコピーする指定です。必要に応じて、この数字を変更できます。

  • myRng.Resize(, Col).Value
    → Resize という操作を使って、選択セルを「指定した列数」に広げて、そのデータを変数 yoko に一時的に保存しています。

  • myRng.Offset(1, i - 1).Value = yoko(1, i)
    → 選択したセルの 直下 にデータを貼り付ける処理です。Offset を使って1行下に移動しています。


使い方

  1. Excelシート上で 複数のセル を選択します。

  2. コード内の Col = 5 の部分を必要な列数に変更します(例:3列だけコピーしたい場合は Col = 3 にする)。

  3. マクロを実行すると、選択したセルのデータが指定した列数分、下方向にコピーされて貼り付けられます。


関連リンク

Sub 指定した列数だけ横方向にコピーして直下に貼り付けるよ()
    Application.ScreenUpdating = False
    Dim Col As Long
    Col = 5  '選択したい列数
    Dim myRng As Range
    For Each myRng In Selection
        Dim yoko As Variant
        yoko = myRng.Resize(, Col).Value
        Dim i As Long
        For i = 1 To UBound(yoko, 2) ' 列方向にループ
            myRng.Offset(1, i - 1).Value = yoko(1, i)
        Next i
    Next myRng
    Application.ScreenUpdating = True
End Sub

キーワード

#excel #できること #vba #列コピー #自動化 #セル操作 #範囲選択 #データ加工 #offset関数 #resize関数 #横方向コピー #データ整理 #マクロ実行 #エクセル便利技 #選択範囲 #セルの値 #データ貼り付け #繰り返し処理 #ループ処理 #エクセルVBA


英語訳


Title: Copy a Specified Number of Columns Horizontally and Paste Below

This explanation is created by ChatGPT.

This VBA code automates the task of copying data horizontally for a specified number of columns from selected cells in Excel and pasting it directly below the original data.


How the Code Works

  1. Data from the selected range is retrieved.

  2. A specified number of columns (default is 5 columns) are copied horizontally.

  3. The copied data is pasted immediately below the selected cells.

  4. This process is repeated for all cells in the selected range.


Key Points of the Code

  • Col = 5
    → This sets the number of columns to be copied. You can change this number as needed.

  • myRng.Resize(, Col).Value
    → Expands the selected range to the specified number of columns and stores the values temporarily in a variable yoko.

  • myRng.Offset(1, i - 1).Value = yoko(1, i)
    → Pastes the data directly below the selected cells using the Offset function.


Usage Instructions

  1. Select multiple cells in the Excel sheet.

  2. Change the value of Col = 5 if needed (e.g., set to Col = 3 to copy 3 columns).

  3. Run the macro. The selected data will be copied and pasted below for the specified number of columns.


Related Links


Keywords

#excel #whatyoucando #vba #columncopy #automation #celloperation #rangeselection #dataprocessing #offsetfunction #resizefunction #horizontalcopy #dataorganization #macroexecution #exceltricks #selectionrange #cellvalues #datapasting #loopprocessing #repetition #excelvba

いいなと思ったら応援しよう!