![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
No.6ベストアンサー
- 回答日時:
#3です。
#3で書いた拙いコードに追加のご要望を加えるとこんな感じでしょうか。
Sub TEST001()
Dim x As Long
With ActiveSheet
.Columns("C").Cut
.Columns("A").Insert Shift:=xlToRight
.Columns("T:U").Cut
.Columns("C:D").Insert Shift:=xlToRight
.Columns("W").Cut
.Columns("E").Insert Shift:=xlToRight
.Columns("W").Cut
.Columns("F").Insert Shift:=xlToRight
.Columns("AA").Cut
.Columns("G").Insert Shift:=xlToRight
.Columns("AA").Cut
.Columns("H").Insert Shift:=xlToRight
.Columns("T").Cut
.Columns("I").Insert Shift:=xlToRight
.Columns("J:AE").Delete Shift:=xlToLeft
.Columns("I:I").Insert Shift:=xlToRight
.Range("G1") = "仕入数"
.Range("H1") = "仕入単価"
.Range("I1") = "合計金額"
.Range("K1") = "備考"
x = .Range("H" & .Rows.Count).End(xlUp).Row
.Range("I2:I" & x).FormulaR1C1 = "=RC[-2]*RC[-1]"
End With
End Sub
#5のWendy02さんのコード、勉強になります。
VBAだと横のソートが出来るんですね!
御礼が大変遅くなりました事をお詫び致します。
その後なんとか上手くいくようになりました。
素人の私にも比較的分り易い内容でお陰で助かりました。
しかしその後若干の仕様の変更があった為、再度御教授願う事になるかもしれません。
その時はまた宜しくお願い致します。
No.8
- 回答日時:
こんにちは。
回答ではありませんが、Wendy02さんが触れてないのでMerlionXXさんに一言。
それにもしかして質問者もご存知ないかもしれないので。。。
>VBAだと横のソートが出来るんですね!
VBAでなくてもできますが。。。(^^;;;
それからご自分の回答を拙いコードだと仰ってますが
質問者のレベルをちゃんと考慮している点に置いて優れた回答だと思いますよ。
No.7
- 回答日時:
こんにちは。
下から数えて、5行目の
.Rows("1").Delete
の後、4行目のEnd With との間に、以下の項目を付けたしします。
.Rows("1").Delete
-----ここから始まり------------------------------
With .Range("A1")
.Offset(, 6).Value = "仕入数"
.Offset(, 7).Value = "仕入単位"
.Offset(, 8).EntireColumn.Insert
.Offset(, 8).Value = "合計金額"
.Range(.Offset(1, 8), .Offset(1, 7).End(xlDown).Offset(, 1)).FormulaLocal = "=RC[-2]*RC[-1]"
.Offset(, 10).Value = "備考"
End With
-----ここで終わり---------------------------------
End With
Application.ScreenUpdating = True
Set r = Nothing
御礼が大変遅くなりました事をお詫び致します。
その後なんとか上手くいくようになりました。
しかしその後若干の仕様の変更があった為、再度御教授願う事になるかもしれません。
その時はまた宜しくお願い致します。
No.5
- 回答日時:
こんにちは。
#1さんの言うような内容ですが、実際に私が書いてみました。
一旦、保存してから、行ってください。ダメな場合は、保存をしなければよいのですから。
'----------------------------------------------------
Sub TestSample()
Dim ar As Variant
Dim i As Integer
Dim v As Variant
Dim r As Range
Application.ScreenUpdating = False
With ActiveSheet
.Rows("1").Insert
ar = Split("C,A,T,U,W,V,AA,Z,N", ",")
.Range("A1:AA1").Value = 99
i = 1
For Each v In ar
.Range(v & "1").Value = i
i = i + 1
Next v
.Range("A1:AA65536").Sort _
Key1:=.Range("A1"), _
Order1:=xlAscending, _
Header:=xlGuess, _
OrderCustom:=1, _
MatchCase:=False, _
Orientation:=xlLeftToRight
Set r = .Range("A1:AA1").Find(99, , xlValues, 1)
.Range(r, .Range("IV1").End(xlLeftToRight)).EntireColumn.Delete
.Rows("1").Delete
End With
Application.ScreenUpdating = True
Set r = Nothing
End Sub
早々に御回答頂きました事に感謝致します。
お礼が遅くなったしまいました事をお詫び致します。
その後、確認致しましたところ下記の部分の追加が必要となりました。
再度お手数ですが御教授願えれば幸いです。
順番に並び替えますと元データのAA、Zが7番目8番目にきます。
でAAの項目には「出荷数」Zの項目には「販売単価」と元データには入っています。
それをそれぞれ「仕入数」「仕入単価」に変えたいのです。
さらに9番目の列に「合計金額」という新たな項目を作り「出荷数」と
「販売単価」の掛け合わせた数値を入れたいのです。
で、10番目に元データのNをそのまま反映させて、さらに11番目に
項目名「備考」という列を新たに作成したいのです。
「備考」の列は項目以外の行は空白です。
以上になりますが補足が必要な際は申しつけ下さい。
No.4
- 回答日時:
こんにちは。
方法はいくつかあると思いますが、一案。
新しくシートを追加してそこにコピー抽出していく方法です。
●元シート名は、Sheet1 としています。
'----------------------------------------------------
Sub Test()
Dim myClms
Dim C As Integer
myClms = Array("C", "A", "T", "U", "W", "V", "AA", "Z", "N")
Sheets.Add after:=Sheets(Sheets.Count)
For C = LBound(myClms) To UBound(myClms)
Sheets("Sheet1").Columns(myClms(C)).Copy Columns(C + 1)
Next C
End Sub
'------------------------------------------------------------
それからこういった類の処理には上記のように配列を利用することをお勧めします。
配列に「並べたい順番に」抽出したい列番号を入れておくと、
順番を変えたい時とか、抽出したい列の増減にも柔軟に対応が出来ますから。
早々に御回答頂きました事に感謝致します。
お礼が遅くなったしまいました事をお詫び致します。
その後、確認致しましたところ下記の部分の追加が必要となりました。
再度お手数ですが御教授願えれば幸いです。
順番に並び替えますと元データのAA、Zが7番目8番目にきます。
でAAの項目には「出荷数」Zの項目には「販売単価」と元データには入っています。
それをそれぞれ「仕入数」「仕入単価」に変えたいのです。
さらに9番目の列に「合計金額」という新たな項目を作り「出荷数」と
「販売単価」の掛け合わせた数値を入れたいのです。
で、10番目に元データのNをそのまま反映させて、さらに11番目に
項目名「備考」という列を新たに作成したいのです。
「備考」の列は項目以外の行は空白です。
以上になりますが補足が必要な際は申しつけ下さい。
No.3
- 回答日時:
#2です。
AE列まであったのですね。修正します。
Sub TEST01()
With ActiveSheet
.Columns("C").Cut
.Columns("A").Insert Shift:=xlToRight
.Columns("T:U").Cut
.Columns("C:D").Insert Shift:=xlToRight
.Columns("W").Cut
.Columns("E").Insert Shift:=xlToRight
.Columns("W").Cut
.Columns("F").Insert Shift:=xlToRight
.Columns("AA").Cut
.Columns("G").Insert Shift:=xlToRight
.Columns("AA").Cut
.Columns("H").Insert Shift:=xlToRight
.Columns("T").Cut
.Columns("I").Insert Shift:=xlToRight
.Columns("J:AE").Delete Shift:=xlToLeft
End With
End Sub
早々に御回答頂きました事に感謝致します。
お礼が遅くなったしまいました事をお詫び致します。
その後、確認致しましたところ下記の部分の追加が必要となりました。
再度お手数ですが御教授願えれば幸いです。
順番に並び替えますと元データのAA、Zが7番目8番目にきます。
でAAの項目には「出荷数」Zの項目には「販売単価」と元データには入っています。
それをそれぞれ「仕入数」「仕入単価」に変えたいのです。
さらに9番目の列に「合計金額」という新たな項目を作り「出荷数」と
「販売単価」の掛け合わせた数値を入れたいのです。
で、10番目に元データのNをそのまま反映させて、さらに11番目に
項目名「備考」という列を新たに作成したいのです。
「備考」の列は項目以外の行は空白です。
以上になりますが補足が必要な際は申しつけ下さい。
No.2
- 回答日時:
こんな感じですか?
Sub TEST01()
With ActiveSheet
.Columns("C").Cut
.Columns("A").Insert Shift:=xlToRight
.Columns("T:U").Cut
.Columns("C:D").Insert Shift:=xlToRight
.Columns("W").Cut
.Columns("E").Insert Shift:=xlToRight
.Columns("W").Cut
.Columns("F").Insert Shift:=xlToRight
.Columns("AA").Cut
.Columns("G").Insert Shift:=xlToRight
.Columns("AA").Cut
.Columns("H").Insert Shift:=xlToRight
.Columns("T").Cut
.Columns("I").Insert Shift:=xlToRight
.Columns("J:AA").Delete Shift:=xlToLeft
End With
End Sub
早々に御回答頂きました事に感謝致します。
お礼が遅くなったしまいました事をお詫び致します。
その後、確認致しましたところ下記の部分の追加が必要となりました。
再度お手数ですが御教授願えれば幸いです。
順番に並び替えますと元データのAA、Zが7番目8番目にきます。
でAAの項目には「出荷数」Zの項目には「販売単価」と元データには入っています。
それをそれぞれ「仕入数」「仕入単価」に変えたいのです。
さらに9番目の列に「合計金額」という新たな項目を作り「出荷数」と
「販売単価」の掛け合わせた数値を入れたいのです。
で、10番目に元データのNをそのまま反映させて、さらに11番目に
項目名「備考」という列を新たに作成したいのです。
「備考」の列は項目以外の行は空白です。
以上になりますが補足が必要な際は申しつけ下さい。
No.1
- 回答日時:
要望の内容であれば、
「マクロの記録」を使って
・不要列の削除
・列の切り取って挿入し並びを入れ替え
で十分と思いますが。
早々に御回答頂きました事に感謝致します。
お礼が遅くなったしまいました事をお詫び致します。
その後、確認致しましたところ下記の部分の追加が必要となりました。
再度お手数ですが御教授願えれば幸いです。
順番に並び替えますと元データのAA、Zが7番目8番目にきます。
でAAの項目には「出荷数」Zの項目には「販売単価」と元データには入っています。
それをそれぞれ「仕入数」「仕入単価」に変えたいのです。
さらに9番目の列に「合計金額」という新たな項目を作り「出荷数」と
「販売単価」の掛け合わせた数値を入れたいのです。
で、10番目に元データのNをそのまま反映させて、さらに11番目に
項目名「備考」という列を新たに作成したいのです。
「備考」の列は項目以外の行は空白です。
以上になりますが補足が必要な際は申しつけ下さい。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) マクロを教えてください。 7 2023/06/01 19:47
- Excel(エクセル) マクロ 2行ごとの並び替えについて 4 2022/12/14 12:27
- Excel(エクセル) Excel 複数列のある文字を優先して1列に表示したいです 2 2022/12/03 12:07
- Visual Basic(VBA) 指定月分の顧客データファイルを統合して並べ替え、所定の場所に貼り付ける 3 2022/09/10 07:55
- Excel(エクセル) エクセルの表でダブりを解消する方法を、教えてください。 5 2023/04/12 12:11
- Excel(エクセル) 【エクセル】並び替えからの並び替え方法 7 2022/07/22 09:46
- Visual Basic(VBA) 指定月分の顧客データファイルを統合して並べ替え、所定の場所に貼り付ける (再質問) 4 2022/09/14 22:51
- Excel(エクセル) Excelについて 4 2023/03/02 09:24
- Excel(エクセル) 製品番号での整列と、検索に関して 3 2023/06/28 19:20
- Excel(エクセル) マクロの保存先、開いてるすべてのブックの意味 エクセルを開き、表示→マクロ→マクロの表示と順番に開く 3 2022/06/25 17:52
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【マクロ】VLOOKUPにて参照元に...
-
エクセル2000のマクロで教...
-
Caps Lockキーの解除
-
Excel2010の並べ替えで行の高さ...
-
エクセル関数で {=TABLE(,セル...
-
リース初心者です 利子率の計...
-
Excelでカーソルが逆に動く
-
バーコード(NW7)のフォントを...
-
エクセルで複数の勤務時間ごと...
-
エクセルで作った書類に、パン...
-
60進法で複数セルの足し算、引...
-
VBA 条件が一致した場合の...
-
エクセルデータをワードへ反映...
-
エクセルを使った分配比率の求...
-
エクセルシートを重ねることは...
-
エクセル フォームボタンクリ...
-
曜日別の売上平均値をだしたい...
-
エクセルで離れたセルを離れた...
-
プルダウンで選択すると隣のセ...
-
エクセルデータを拡大/縮小して...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【マクロ】VLOOKUPにて参照元に...
-
エクセルに入力後、別のシート...
-
EXCEL VBA データを抽出して別...
-
エクセルデータから必要な情報...
-
エクセルのシートの縦横入れ替え
-
エクセルの最終ページだけを自...
-
マクロや関数で来店管理表を作...
-
煙草の名称を覚える方法で…
-
エクセルマクロ:日付値で、別...
-
ExcelのVBAでvlookupの使い方を...
-
Excel VBA - 列をシート別に分ける
-
ブック間参照しながら3つ以上の...
-
Caps Lockキーの解除
-
Excel2010の並べ替えで行の高さ...
-
リース初心者です 利子率の計...
-
Excelでカーソルが逆に動く
-
エクセルで複数の勤務時間ごと...
-
エクセル関数で {=TABLE(,セル...
-
プルダウンで選択すると隣のセ...
-
エクセルで離れたセルを離れた...
おすすめ情報