お世話になります。
マクロ初心者で、今、「エクセルのマクロと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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセル 指定した文字列を含...
-
桁数が混在する並び替えの方法
-
Excel参照指定の範囲
-
エクセルで2列を検索し2列とも...
-
エクセルで一部除外した数字を...
-
オートフィルについて(急ぎ!)
-
EXCEL マクロ 文字列を種類分...
-
エクセルで同じ名前ごとの合計...
-
excel関数について質問です。
-
空欄を検索して、その空欄に文...
-
Excelで数値→文字列変換で指数...
-
テキストボックス内の文字のふ...
-
Excelの関数について、特定の文...
-
Excelで行ごとコピー、同じ行を...
-
エクセル
-
エクセルでグラフタイトルが折...
-
たくさん作った同じ設定のグラ...
-
塗りつぶしの色をコピーするには
-
【Excel】貼り付けた画像がいつ...
-
エクセルにおける、グラフの指...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセル 指定した文字列を含...
-
桁数が混在する並び替えの方法
-
EXCEL VBA 指定範囲内で特定の...
-
エクセルVBA Unionはなぜ遅い?
-
エクセルで同じ名前ごとの合計...
-
エクセルの関数SUBSTITUTEを、...
-
エクセルで一部除外した数字を...
-
エクセル VLOOKUPが反映されない
-
エクセルで2列を検索し2列とも...
-
Excelで自動的に並べ替えなんて...
-
ExcelVBA:列方向の並び替え O...
-
エクセルで列内の同じIDの商品...
-
エクセルvba 一つ上の行を指定...
-
エクセル マクロで列を連続し...
-
EXCELである列を上から順にチェ...
-
エクセルマクロでA欄に値があ...
-
VBAでFormula関数を使ってVlook...
-
エクセルの質問(結合と集計に...
-
エクセルで合算後の降順がうま...
-
アクティブセルのある行の任意...
おすすめ情報
画像を貼り直しました。こちらの方が見やすいと思います。
画像を2個に分けました。これでだいぶマシだと思います。
2個目の画像、「Sheet2」です。これでわかると思います。すいませんが、よろしくお願いします。