📊 Excel VBA Top100
🔄

TransposeData

データ処理

選択範囲を転置(行列を入れ替え)してコピーします

🎬 デモGIF準備中

📖 使い方

  1. VBAエディタを開く(Alt + F11)
  2. モジュールを挿入(挿入 > モジュール)
  3. 下記VBAコードをコピー&ペースト
  4. ブック上で実行(Alt + F8 でマクロ選択)
💡 実行例: 転置したい範囲を選択してから TransposeData を実行します

💻 VBAコード

' TransposeData
' -----------------
' Macro Name: TransposeData
' Description: 選択範囲を転置(行列を入れ替え)してコピーします
' Parameters: なし
' Returns: なし
' Usage: 転置したい範囲を選択してから TransposeData を実行します
' -----------------

Sub TransposeData()
    On Error GoTo ErrorHandler

    Dim srcRange As Range
    Dim destCell As Range
    Dim destAddr As String

    If TypeName(Selection) <> "Range" Then
        MsgBox "セル範囲を選択してから実行してください", vbCritical, "エラー"
        Exit Sub
    End If

    Set srcRange = Selection

    destAddr = InputBox("転置先の先頭セルアドレスを入力してください(例: C1)", "転置先指定", "C1")
    If destAddr = "" Then Exit Sub

    On Error Resume Next
    Set destCell = ActiveSheet.Range(destAddr)
    On Error GoTo ErrorHandler

    If destCell Is Nothing Then
        MsgBox "無効なセルアドレスです", vbCritical, "エラー"
        Exit Sub
    End If

    srcRange.Copy
    destCell.PasteSpecial Paste:=xlPasteAll, Transpose:=True
    Application.CutCopyMode = False

    MsgBox "転置が完了しました", vbInformation, "完了"

    Exit Sub

ErrorHandler:
    MsgBox "エラーが発生しました:" & vbCrLf & Err.Description, vbCritical, "エラー"
End Sub