![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
縦に並んでいるA,B,C,D のデータを横に行と列を入れ替えて新しいシートA1から添付画像のように、G列から横に名前別にマクロを使用して名前が変わったら改行して間を1行開けてA列に並べたいのですが、下記のコードでは左詰めができずにうまく動作しません。解決法をどなたか教えていただけませんか。よろしくお願いいたします。
Sub TData()
Dim wsSource As Worksheet
Dim wsTarget As Worksheet
Dim lastRow As Long
Dim TargetRow As Long
Dim nameCol As Long
Dim dateCol As Long
Dim time1Col As Long
Dim time2Col As Long
Dim currentName As String
' ソースシートとターゲットシートの設定
Set wsSource = ThisWorkbook.Sheets("Sheet1) ' ソースシートの名前
Set wsTarget = ThisWorkbook.Sheets.Add ' 新しいシートを作成
' 列のインデックスを設定
nameCol = 1 ' A列
dateCol = 2 ' B列
time1Col = 3 ' C列
time2Col = 4 ' D列
' ターゲットシートの初期行を設定
TargetRow = 1
' 最終行を取得
lastRow = wsSource.Cells(wsSource.Rows.Count, nameCol).End(xlUp).Row
' ソースデータを走査して転記
For i = 1 To lastRow
If wsSource.Cells(i, nameCol).Value <> currentName Then
' 名前が変わった場合、新しい行に移動
TargetRow = TargetRow + 1
currentName = wsSource.Cells(i, nameCol).Value
End If
' 名前、日付、時間1、時間2をターゲットシートに転記
wsTarget.Cells(TargetRow * 4 - 3, i).Value = currentName
wsTarget.Cells(TargetRow * 4 - 2, i).Value = wsSource.Cells(i, dateCol).Value
wsTarget.Cells(TargetRow * 4 - 1, i).Value = wsSource.Cells(i, time1Col).Value
wsTarget.Cells(TargetRow * 4, i).Value = wsSource.Cells(i, time2Col).Value
Next i
End Sub
![「Excel データの並び替え」の質問画像](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/c/543226067_65b60b3757d6b/M.png)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルマクロでデータ出力の際の条件がうまく機能しません。 2 2023/09/30 13:01
- Excel(エクセル) エクセルマクロでデータ出力の際の条件がうまく機能しません。 5 2023/10/01 12:50
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Visual Basic(VBA) エクセルマクロで出力行の増やし方がわかりません。 4 2023/09/28 23:40
- Visual Basic(VBA) VBAコードが作動しません。修正したいのですが何処に原因かあるか教えて下さい。 1 2024/01/08 16:23
- Excel(エクセル) VBAの指示の内容 昨日こちらでご教示頂いたのですが初心者な為、一つ一つの指示が何をやっているのかわ 2 2022/10/25 18:08
- Visual Basic(VBA) A2~I4179列にあるリストを支社名ごとにシートに分けたいです。 各シート名はA列にある支社名とし 3 2023/08/29 16:46
- Visual Basic(VBA) VBA処理追加 こちらでご教示頂いたのですが回答完了させてしまいましたのでこちらからまた質問させてく 2 2022/10/27 09:57
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- Visual Basic(VBA) VBAで質問ですが、皆さんはどの様に導き出しているのでしょうか? 6 2022/05/03 21:53
このQ&Aを見た人はこんなQ&Aも見ています
-
「どうして捨てられないの?」前妻の物を捨てられない男性の心理って?
前妻の物を捨てられない理由に加え、捨てるための手段はあるのかを専門家に聞いてみた!
-
エクセルのセル統合について
Excel(エクセル)
-
<急募>エクセルデータの関数を用いた並び替えについて
Excel(エクセル)
-
ExcelでA列をコピーしたいのですがコピー範囲内に空白セルがあるとそこで終わってしまいます。 全て
Excel(エクセル)
-
-
4
エクセルの表の参照値から円を取って数字で扱えるようにしたい
Excel(エクセル)
-
5
エクセル 画像の左のように、縦に支店がズラッとたくさんならんでいます。 横に百ほどの製品がならんでい
Excel(エクセル)
-
6
Excel関数かなにかでスムーズに処理するにはあなたならどうしますか?
Excel(エクセル)
-
7
Excel表について(2)
Excel(エクセル)
-
8
IF関数
Excel(エクセル)
-
9
Excel表について(1)
Excel(エクセル)
-
10
エクセル詳しい方教えて下さい
Excel(エクセル)
-
11
曜日の 月 を (月) と表示させる方法について
Excel(エクセル)
-
12
100行50列の表で、1~40列でフィルターをかけた時41~50列での内容別の数量確認をする方法
Excel(エクセル)
-
13
Excelの関数で起きた現象の原因がわかりません。
Excel(エクセル)
-
14
エクセル 該当行だけを表示したい。 削除でもいいし、非表示でもいいです。 手動でひひょうじにするので
Excel(エクセル)
-
15
りんご"と"みかん"というシートがあります。 "りんご"というシートの B列にて、B2から40行お"
Excel(エクセル)
-
16
同一セルに入力規則のリストと参照する設定併用できるような設定はありますでしょうか!!
Excel(エクセル)
-
17
Excelでの判別方法
Excel(エクセル)
-
18
Excel 領収書発行
Excel(エクセル)
-
19
エクセルで
Excel(エクセル)
-
20
表示されている人数だけを数えたい!!
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelのセルの色を変えた行(す...
-
文字の色も参照 VLOOKUP
-
エクセルの保護で、列の表示や...
-
ExcelのVlookup関数の制限について
-
Excel の複数シートの列幅を同...
-
【条件付き書式】countifsで複...
-
エクセルVBAで、ある文字を含ん...
-
エクセルで、チェックボックス...
-
VBAで繰り返しコピーしながら下...
-
Excel VBA ピボットテーブルに...
-
Excel複数シートにあるデータを...
-
Excelでの並べ替えを全シートま...
-
エクセルのブック分割マクロを...
-
エクセル マクロ 標準モジュー...
-
SUMPRODUCTにて別シートのデー...
-
VBAで検索して、行をコピー&追...
-
EXCEL 関数を教えてください。...
-
エクセルの列の限界は255列以上...
-
エクセルで横並びの複数データ...
-
データチェックを行うエクセル...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
文字の色も参照 VLOOKUP
-
ExcelのVlookup関数の制限について
-
エクセルの保護で、列の表示や...
-
VBAで繰り返しコピーしながら下...
-
Excel の複数シートの列幅を同...
-
Excel複数シートにあるデータを...
-
エクセルの列の限界は255列以上...
-
【条件付き書式】countifsで複...
-
エクセル マクロ 標準モジュー...
-
Excelでの並べ替えを全シートま...
-
SUMPRODUCTにて別シートのデー...
-
エクセルで、チェックボックス...
-
スプレッドシートでindexとIMPO...
-
VLOOKアップ関数の結果の...
-
Excel VBA ピボットテーブルに...
-
エクセルで横並びの複数データ...
-
Excelに自動で行の増減をしたい...
-
【VBA】ピボットテーブルを既存...
-
【VBA】複数のシートの指定した...
-
オートフィルタ使用時にCOUNTIF...
おすすめ情報