縦に並んでいる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
お探しの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も見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
<急募>エクセルデータの関数を用いた並び替えについて
Excel(エクセル)
-
エクセルのセル統合について
Excel(エクセル)
-
エクセルの表の参照値から円を取って数字で扱えるようにしたい
Excel(エクセル)
-
-
4
ExcelでA列をコピーしたいのですがコピー範囲内に空白セルがあるとそこで終わってしまいます。 全て
Excel(エクセル)
-
5
エクセルのcountifのワイルドカードについて
Excel(エクセル)
-
6
エクセル 画像の左のように、縦に支店がズラッとたくさんならんでいます。 横に百ほどの製品がならんでい
Excel(エクセル)
-
7
Excel関数かなにかでスムーズに処理するにはあなたならどうしますか?
Excel(エクセル)
-
8
Excel表について(2)
Excel(エクセル)
-
9
100行50列の表で、1~40列でフィルターをかけた時41~50列での内容別の数量確認をする方法
Excel(エクセル)
-
10
IF関数
Excel(エクセル)
-
11
Excel表について(1)
Excel(エクセル)
-
12
エクセル詳しい方教えて下さい
Excel(エクセル)
-
13
りんご"と"みかん"というシートがあります。 "りんご"というシートの B列にて、B2から40行お"
Excel(エクセル)
-
14
エクセル 該当行だけを表示したい。 削除でもいいし、非表示でもいいです。 手動でひひょうじにするので
Excel(エクセル)
-
15
Excel 領収書発行
Excel(エクセル)
-
16
Excelの関数で起きた現象の原因がわかりません。
Excel(エクセル)
-
17
曜日の 月 を (月) と表示させる方法について
Excel(エクセル)
-
18
同一セルに入力規則のリストと参照する設定併用できるような設定はありますでしょうか!!
Excel(エクセル)
-
19
Excelでの判別方法
Excel(エクセル)
-
20
エクセルで
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAで繰り返しコピーしながら下...
-
エクセルの保護で、列の表示や...
-
文字の色も参照 VLOOKUP
-
ExcelのVlookup関数の制限について
-
オートフィルタ使用時にCOUNTIF...
-
【条件付き書式】countifsで複...
-
【VBA】ピボットテーブルを既存...
-
エクセル マクロ 標準モジュー...
-
エクセルVBA 行追加時に自...
-
エクセルで、book全体の検索&...
-
エクセルの列の限界は255列以上...
-
Excel の複数シートの列幅を同...
-
Excelでの並べ替えを全シートま...
-
エクセルで横並びの複数データ...
-
エクセルVBAで、ある文字を含ん...
-
スプレッドシートでindexとIMPO...
-
シートをまたぐ条件付き書式に...
-
エクセル関数に詳しい方、教え...
-
Excelで全てのシートに一気に列...
-
VLOOKアップ関数の結果の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ExcelのVlookup関数の制限について
-
文字の色も参照 VLOOKUP
-
オートフィルタ使用時にCOUNTIF...
-
エクセルの保護で、列の表示や...
-
VBAで繰り返しコピーしながら下...
-
Excel の複数シートの列幅を同...
-
【VBA】シート名と見出しが一致...
-
エクセルで横並びの複数データ...
-
エクセルの列の限界は255列以上...
-
Excelでの並べ替えを全シートま...
-
【条件付き書式】countifsで複...
-
VLOOKアップ関数の結果の...
-
Excel VBA ピボットテーブルに...
-
エクセル マクロ 標準モジュー...
-
Excelで、ファイル名、シート名...
-
エクセルで、チェックボックス...
-
【VBA】複数のシートの指定した...
-
エクセルVBAで、ある文字を含ん...
-
スプレッドシートでindexとIMPO...
-
SUMPRODUCTにて別シートのデー...
おすすめ情報