お世話になります。
マクロ初心者で、今、「エクセルのマクロとvbaがみるみるわかる本」http://bit.ly/1sFd4gK
という本で、マクロの勉強中です。
仕事でシート「Sheet1」に入っているデータを「Sheet2」にコピーし、画像のようにタテ1列に張り付けるマクロを作る必要があります。
まだまだ勉強不足でガイドブックの範囲外のことですので、すいませんが詳しい方、親切な方、サンプルプログラムを張り付けて頂けないでしょうか?
詳細は以下のとおりです。理論を説明して頂いても今の私の知識では、手に負えないと思いますので、すいませんがサンプルの貼り付けでお願いします。
※エクセルのバージョンはEXCEL2010です。
-----------
「Sheet1」「Sheet2」で入力する条件、範囲の詳細
1)「Sheet1」の「日付」の範囲は「-」までです。
※6月は30日までしかありませんが、31日まである月にも対応したいので。
2)「伝票番号1」~「伝票番号10」について
※「日付」に対して左詰で記載します。途中が空白になったりしません。
例)6月30日で「A5-32」がなくて、セル番号E32に「A5-33」があるということはありません。
3)「Sheet2」はタテ1列で昇順で並べる必要があります
-----------
こんな感じです。
すいませんが、よろしくお願いします。
No.2ベストアンサー
- 回答日時:
No.1です。
投稿後気づきました。
>3)「Sheet2」はタテ1列で昇順で並べる必要があります
を見逃していました。
↓のコードに変更してください。(並び替えのコードを追加しています)
Sub Sample2()
Dim i As Long, j As Long, cnt As Long, wS As Worksheet
Set wS = Worksheets("Sheet2")
wS.Range("A:A").ClearContents '←Sheet2のA列データを一旦消去//
With Worksheets("Sheet1")
For i = 2 To .Cells(Rows.Count, "A").End(xlUp).Row '←2行目~A列最終行まで//
For j = 2 To 11 '←B列~K列まで//
If .Cells(i, j) <> "" Then
cnt = cnt + 1
wS.Cells(cnt, "A") = .Cells(i, j)
End If
Next j
Next i
'▼追加(並び替え)//
wS.Range("A:A").Sort key1:=wS.Range("A1"), order1:=xlAscending, Header:=xlNo
End With
End Sub
どうも失礼しました。m(_ _)m
ご回答ありがとうございます、いつもお世話になります。
おかげさまで助かりました。
「'」以下に解説もつけて頂き本当にありがとうございます。
まだ「参考になりました」と言えるレベルではなく、
「多分、こうなんだろうな、、、」という程度ですが助かりました。
ガイドブックで勉強しながら時々、範囲外のことをこちらで
質問しようと思っておりますので、またよろしくお願いします。
PS
前回、 http://bit.ly/1Pbmnzg の件、
「お礼なし」となってしまい、大変失礼しました。
ちゃんと書いたのですが、お礼のところにブログのURLを貼り付けたので、多分、規約違反でコメントが削除されたのだと思います。
すいませんでした。
機会がありましたら、また、よろしくお願いします。
No.1
- 回答日時:
こんばんは!
この程度の量であれば、単純にループさせるのが簡単だと思います。
一例です。標準モジュールにしてください。
Sub Sample1()
Dim i As Long, j As Long, cnt As Long, wS As Worksheet
Set wS = Worksheets("Sheet2")
wS.Range("A:A").ClearContents '←Sheet2のA列データを一旦消去//
With Worksheets("Sheet1")
For i = 2 To .Cells(Rows.Count, "A").End(xlUp).Row '←2行目~A列最終行まで//
For j = 2 To 11 '←B列~K列まで//
If .Cells(i, j) <> "" Then
cnt = cnt + 1
wS.Cells(cnt, "A") = .Cells(i, j)
End If
Next j
Next i
End With
End Sub
こんな感じではどうでしょうか?m(_ _)m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelにて、行の最後のセルの値をコピーして別sheetに張りつけるVBAコードをご教授願います 3 2022/11/20 14:35
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/01/23 11:02
- Visual Basic(VBA) Sheet「状況」から、分類の年齢別カウント数をSheet「D表」へ転記する下記マクロを作っています 7 2022/12/14 17:57
- Visual Basic(VBA) セルに抜けた番号の代わりに空白を挿入する 4 2023/04/10 20:29
- Excel(エクセル) Excel_マクロ_複数のシートのVLOOKUPで表示された#N/A以外に色付けをしたいです 1 2023/02/16 22:37
- その他(Microsoft Office) 従業員増減対応で当番種類の増減対応な当番表 21 2022/07/19 07:30
- Excel(エクセル) 【マクロ】同じフォルダ内にある複数ブックから1つのブック内の1シートにデータを集めたい 6 2022/09/28 18:16
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/07/04 17:58
- Excel(エクセル) VBA ふたつの同じ様式シートのセルをコピーしたい 2 2023/03/08 15:28
- Visual Basic(VBA) 【困っています2】VBA 追加処理の記述を教えてください。 2 2022/08/26 11:42
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで同じ名前ごとの合計...
-
エクセルで一部除外した数字を...
-
エクセル 指定した文字列を含...
-
エクセルの関数SUBSTITUTEを、...
-
エクセルの関数についての質問...
-
VBAでFormula関数を使ってVlook...
-
Excelで数値→文字列変換で指数...
-
テキストボックス内の文字のふ...
-
Excelで行ごとコピー、同じ行を...
-
エクセルにおける、グラフの指...
-
エクセル
-
エクセルでグラフタイトルが折...
-
たくさん作った同じ設定のグラ...
-
エクセルグラフの一括設定。
-
塗りつぶしの色をコピーするには
-
Excelの関数について、特定の文...
-
数字がセルの左側に寄っていて...
-
C+vのvは英語で何の頭文字...
-
【Excel】貼り付けた画像がいつ...
-
PDFの一部を切り取って別のシー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセル 指定した文字列を含...
-
エクセルで同じ名前ごとの合計...
-
エクセルVBA Unionはなぜ遅い?
-
エクセルの関数SUBSTITUTEを、...
-
桁数が混在する並び替えの方法
-
エクセルで一部除外した数字を...
-
EXCEL VBA 指定範囲内で特定の...
-
エクセルで列内の同じIDの商品...
-
エクセルで2列を検索し2列とも...
-
エクセル マクロで列を連続し...
-
EXCEL 指定した曜日に番号を振...
-
EXCELである列を上から順にチェ...
-
Excelで自動的に並べ替えなんて...
-
エクセルvba 一つ上の行を指定...
-
エクセル VLOOKUPが反映されない
-
エクセルマクロでA欄に値があ...
-
(続き)Excel2013で正しくソート...
-
ExcelVBA:列方向の並び替え O...
-
エクセルのマクロ教えてください。
-
エクセル 並び替え
おすすめ情報
画像を貼り直しました。こちらの方が見やすいと思います。
画像を2個に分けました。これでだいぶマシだと思います。
2個目の画像、「Sheet2」です。これでわかると思います。すいませんが、よろしくお願いします。