
No.1ベストアンサー
- 回答日時:
Option Explicit
Option Base 1
Sub データ正規化()
Dim i As Integer
Dim j As Integer
Dim k As Integer
Dim 国 As String
Dim 品番 As String
Dim カラー As String
Dim 転送元 As Worksheet
Dim 転送先 As Worksheet
Set 転送元 = Worksheets("Sheet1")
Set 転送先 = Worksheets("Sheet2")
i = 2
j = 0
While 転送元.Cells(i, 1) <> ""
国 = 転送元.Cells(i, 1)
品番 = 転送元.Cells(i, 2)
カラー = 転送元.Cells(i, 3)
k = 1
While Cells(i, k * 2 + 2) <> ""
j = j + 1
転送先.Cells(j, 1) = 国
転送先.Cells(j, 2) = 品番
転送先.Cells(j, 3) = カラー
転送先.Cells(j, 4) = 転送元.Cells(i, k * 2 + 2)
転送先.Cells(j, 5) = 転送元.Cells(i, k * 2 + 3)
k = k + 1
Wend
i = i + 1
Wend
End Sub
データはSheet1の2行目からA列が空白になるまで
D列以降はサイズと数量の2列1組で複数組
出力はSheet12の1行目から
という仕様で書いてみました
現在酔っ払っているので解説が必要なら後日
No.2
- 回答日時:
こんにちは。
標準モジュールに貼り付けてください。
'-------------------------------------------
Sub MacroTest1()
Dim rng As Range
Dim i As Long
Dim j As Long
Dim k As Long
Dim sh1 As Worksheet
Dim sh2 As Worksheet
Set sh1 = Worksheets("Sheet1")
Set sh2 = Worksheets("Sheet2")
Set rng = sh1.Range("A1").CurrentRegion
Application.ScreenUpdating = False
With rng
.Resize(1, 5).Copy sh2.Cells(1, 1)
sh2.Cells(1, 5).Value = "数量"
k = 2 'タイトル行の次の行から
For i = 2 To .Rows.Count
For j = 4 To .Columns.Count Step 2
If .Cells(i, j + 1).Value <> "" Then
.Cells(i, 1).Resize(, 3).Copy sh2.Cells(k, 1)
.Cells(i, j).Resize(, 2).Copy sh2.Cells(k, 4)
k = k + 1
End If
Next j
Next i
End With
Application.ScreenUpdating = True
Set rng = Nothing
Set sh1 = Nothing
Set sh2 = Nothing
End Sub
'-------------------------------------------
なお、#1さんのコードは間違いではないのですが、お酒のせいでしょうか、以下のように直したほうがよいです。
While Cells(i, k * 2 + 2) <> ""
↓
While 転送元.Cells(i, k * 2 + 2) <> ""
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
裁判所から届く「訴状」は転送...
-
サーバーに転送したファイルが0...
-
外付けHDDの80GBのデータを内蔵...
-
messengerに投稿したwordファイ...
-
転送と回送の違い
-
Music Center for PCの楽曲をiT...
-
「スマホカメラ転送」は、何?
-
PDFファィルが転送できない
-
録音アプリのPCM録音で4時間録...
-
PDFファイルをFFFTPでアップロ...
-
Beckyで手を加えずに転送の送信...
-
Windows XPのWindows media pla...
-
勝手にdatファイルになるのです...
-
WordでURLをクリックしてそのペ...
-
FTP.exeで接続をするとエラーが...
-
ホームページビルダーで不要な...
-
ホームページビルダー12で、ペ...
-
[ブロック解除]の方法が知りた...
-
www以外のホスト名の設定
-
ギガファイル便って女の人のエ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
裁判所から届く「訴状」は転送...
-
クラウドサービスの転送容量
-
録音アプリのPCM録音で4時間録...
-
サーバーに転送したファイルが0...
-
Beckyで手を加えずに転送の送信...
-
Music Center for PCの楽曲をiT...
-
アンドロイドスマホに4GB以上の...
-
転送と回送の違い
-
USB2.0用の延長ケーブルを、USB...
-
FTP(Filezilla)で「上書きしま...
-
ファイルをコピーしてる時にス...
-
FTP転送エラーについて
-
外付けHDDの80GBのデータを内蔵...
-
ホームページビルダーで転送が...
-
FFFTPを使っているのですが画像...
-
TCP環境下でのファイル破損は起...
-
AccessからExcelのシートを削除
-
messengerに投稿したwordファイ...
-
2連装のHDDケースの書き込み速度
-
音楽編集ソフト STEP(SuperTag...
おすすめ情報