以前にも同じような質問を致しましたが少し変更があった為再度
質問させて頂きます。
日々あるデータが送られてきます。
A~AEまであります。項目は1行目でセルが黄色で塗り潰されています。
マクロで下記のようにしたいのです。
残すのはA、C、N、T、U、V、W、Z、AAのみですが順序を入替えたい。
順番としてC、A、T、U、W、V、AA、Z、Nの順です。
元々は違う名前で入ってるのですがZの項目を「仕入単価」と書き換えたい。
AAの項目を「数量」と書き換えたい。
AAとZの掛け算を出したい。出す場所はZとNの間の列に新たに列を作りそこに出す。
その列の項目には「合計金額」と入れ他の項目と同じように黄色で塗り潰す。
さらにZの単価は基本的に330.00のように小数点以下二桁が入っています。
たまに100.50のように単価に銭が入る事があります。
その場合の計算として例えば仕入単価100.50で数量が5とすれば答えは502となり
銭も計算した上で合計のところで小数点以下は切り捨てにされます。
表示も502.00のようにするのではなく502と小数点を表示させたくありません。
以上、細かい指示ばかりで申し訳ありませんが教えて頂けると有り難いです。
もし補足が必要なら申し付け下さい。
No.7ベストアンサー
- 回答日時:
> 教えて頂いたマクロを見ながらいろいろと試したのですがどうも上手くいきません。
> その辺り分り易く教えて頂けると嬉しいです。
ご自分で列の順序の入れ替えをマクロの記録でやってみてどのような記述になるのか見てみましたか?
とりあえず回答は書きましたが、自分でなおせないと応用がきかなくて困ると思いますよ。
Sub TEST04()
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("O:P").Cut
.Columns("I:J").Insert Shift:=xlToRight
.Columns("K:AE").Delete Shift:=xlToLeft 'J列不要の場合は("J:AE")にする
.Columns("I").Insert Shift:=xlToRight
.Range("G1") = "数量"
.Range("H1") = "仕入単価"
.Range("I1") = "合計金額"
x = .Range("H" & .Rows.Count).End(xlUp).Row
.Range("I2:I" & x).FormulaR1C1 = "=ROUNDDOWN(RC[-2]*RC[-1],0)"
.Range("I" & x + 1).FormulaR1C1 = "=SUM(R[" & 1 - x & "]C:R[-1]C)"
.Range("G2:G" & x).NumberFormatLocal = "0;[赤]-0"
.Range("I2:I" & x + 1).NumberFormatLocal = "#,##0;[赤]-#,##0"
.Range(.Range("A1"), .Range("A1").End(xlToRight)).Interior.ColorIndex = 6
End With
End Sub
何度もお手数をお掛けし申し訳ありませんでした。
丁寧に教えて頂きました事、心から感謝申し上げます。
>ご自分で列の順序の入れ替えをマクロの記録でやってみてどのような
>記述になるのか見てみましたか?
>とりあえず回答は書きましたが、自分でなおせないと応用がきかなくて
>困ると思いますよ。
おっしゃる通りです。
少しずつですが勉強していきたいと思います。
本当に有難うございました。
No.6
- 回答日時:
おはようございます。
merlionXXです。> G列、I列の中で-(マイナス)の表示がされる事があります。
> その際にその数字を赤文字で表示させたいのですが、
セルの書式設定を変えればいいというのはわかりますよね?
ご自分でマクロの記録で書式設定の変更をやってみて、それがどのような記述になるのか一度見てくださいね。
今回は下記のような修正になります。
GとI列はマイナス時は赤字、I列はさらにカンマが入るんでしたね。
Sub TEST03()
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").Insert Shift:=xlToRight
.Range("G1") = "数量"
.Range("H1") = "仕入単価"
.Range("I1") = "合計金額"
x = .Range("H" & .Rows.Count).End(xlUp).Row
.Range("I2:I" & x).FormulaR1C1 = "=ROUNDDOWN(RC[-2]*RC[-1],0)"
.Range("I" & x + 1).FormulaR1C1 = "=SUM(R[" & 1 - x & "]C:R[-1]C)"
.Range("G2:G" & x).NumberFormatLocal = "0;[赤]-0"
.Range("I2:I" & x + 1).NumberFormatLocal = "#,##0;[赤]-#,##0"
.Range("A1:J1").Interior.ColorIndex = 6
End With
End Sub
有難うございます。
何度も感謝致します。
希望通りになりました。
さらに今後の可能性として下記のような場合も考えらるのですが、
(またか!とお叱りを受けるのを覚悟で質問させて下さい)
元データのN列が最後に来ますが、これがN列では無くI列が最後の場合、
又はI列、J列と二つの列が最後の場合はどうなるのでしょうか?
N列は必要無しです。
その他はまったく同じ条件です。
教えて頂いたマクロを見ながらいろいろと試したのですがどうも上手くいきません。
その辺り分り易く教えて頂けると嬉しいです。
No.5
- 回答日時:
> 一つ後で気が付いたんですがI列の合計を一番下のセルに表示させるには
> どうすれば良いのでしょう?
> それとI列のみカンマで区切りを入れたいのですが合わせて教えて下さい。
では、これでいかがでしょうか?
どこが変わったか見比べてください。
Sub TEST02()
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").Insert Shift:=xlToRight
.Range("G1") = "数量"
.Range("H1") = "仕入単価"
.Range("I1") = "合計金額"
x = .Range("H" & .Rows.Count).End(xlUp).Row
.Range("I2:I" & x).FormulaR1C1 = "=ROUNDDOWN(RC[-2]*RC[-1],0)"
.Range("I" & x + 1).FormulaR1C1 = "=SUM(R[" & 1 - x & "]C:R[-1]C)"
.Range("I2:I" & x + 1).NumberFormatLocal = "#,##0"
.Range("A1:J1").Interior.ColorIndex = 6
End With
End Sub
merlionXXさん
何度も本当に有難うございます。
思い通りになりました。
欲を言いますが、あと一つだけ教えて下さい。
G列、I列の中で-(マイナス)の表示がされる事があります。
その際にその数字を赤文字で表示させたいのですが、その場合は
どうすれば良いのでしょう?
No.4
- 回答日時:
こんばんは。
merlionXX さんから回答が出ていますから、私としては、今のところVBAを書くのは控えますが、
>表示も502.00のようにするのではなく502と小数点を表示させたくありません。
ここの部分ですが、おそらく、片方の単価の部分は、"0.00" で、もう片方の数量が、デフォルト状態で、金額欄は、もともとは、デフォルトの状態のままであったと思うのです。
そういう場合は、単価の書式に引きずられて、金額欄も、"0.00" になってしまうので、意図的に、セルの書式を、"0" または、"#,##0" などとしておいたら、そういう問題は発生しなくなると思います。数式は、merlionXX さんの ROUNDOWN でよいと思います。
お礼が遅くなり申し訳ありませんでした。
私の意図している事が出来ました。
有難うございます。
一つ後で気が付いたんですがI列の合計を一番下のセルに表示させるには
どうすれば良いのでしょう?
それとI列のみカンマで区切りを入れたいのですが合わせて教えて下さい。
No.3
- 回答日時:
では、前回答えたものをちょといじって・・・
Sub TEST01()
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").Insert Shift:=xlToRight
.Range("G1") = "数量"
.Range("H1") = "仕入単価"
.Range("I1") = "合計金額"
x = .Range("H" & .Rows.Count).End(xlUp).Row
.Range("I2:I" & x).FormulaR1C1 = "=ROUNDDOWN(RC[-2]*RC[-1],0)"
.Range("I2:I" & x).NumberFormatLocal = "G/標準"
.Range("A1:J1").Interior.ColorIndex = 6
End With
End Sub
でいいでしょうか?
お礼が遅くなり申し訳ありませんでした。
私の意図している事が出来ました。
有難うございます。
一つ後で気が付いたんですがI列の合計を一番下のセルに表示させるには
どうすれば良いのでしょう?
No.2
- 回答日時:
こんにちは。
前回、同様のご質問をなさって解決していますね。
http://oshiete1.goo.ne.jp/qa2937725.html
その時に、再び質問するかもしれないとお書きになっていますので、了解はしていますが、今は、どういう状況なのですか?
ここを直してほしいとか、前のものは、うまくなかったとか、最初からというものでもないと思いますが。
御回答有難うございます。
その節は有難うございました。
お陰で前回の分は上手くいきました。
ですが、
「その列の項目には「合計金額」と入れ他の項目と同じように黄色で塗り潰す。
さらにZの単価は基本的に330.00のように小数点以下二桁が入っています。
たまに100.50のように単価に銭が入る事があります。
その場合の計算として例えば仕入単価100.50で数量が5とすれば答えは502となり
銭も計算した上で合計のところで小数点以下は切り捨てにされます。
表示も502.00のようにするのではなく502と小数点を表示させたくありません。」
の部分を追加したいのです。
ただそれだけです。その為に前回の部分も含めて書き直す必要があるのであれば
再度御指示願えればと思います。
度々の事で申し訳ありませんが宜しくお願いします。
No.1
- 回答日時:
マクロの記録でできると思いますよ。
順番を入れ替えると考えるからややこしいですが
新しいシートに必要な項目を順に列でコピーしていけば単純ですから。
項目名の書き換えもできますし、数式入力は.end(xlup)を使って最終行を得ればいいでしょう。
単価については
Sub test()
For Each cl In Selection
If cl.Value = Int(cl.Value) Then
cl.NumberFormatLocal = "0"
Else
cl.NumberFormatLocal = "0.00"
End If
Next
End Sub
な感じでよろしいかと。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 建設業・製造業 見積作成(エクセル)について教えて下さい。 2 2023/05/10 13:47
- Excel(エクセル) マクロだと数式が表示される 2 2022/09/10 14:48
- Excel(エクセル) Excel2016 行間を詰めたい&同じカテゴリなら上位2つだけを表示したい 5 2022/06/03 12:19
- Excel(エクセル) 列を自動で追加したい 3 2022/07/11 12:58
- Visual Basic(VBA) 指定月分の顧客データファイルを統合して並べ替え、所定の場所に貼り付ける 3 2022/09/10 07:55
- Visual Basic(VBA) 指定月分の顧客データファイルを統合して並べ替え、所定の場所に貼り付ける (再質問) 4 2022/09/14 22:51
- Excel(エクセル) ExcelVBAでリストの項目に必要数と同じ手配数を分配していくマクロを作りたいです。 1 2022/07/29 18:36
- Excel(エクセル) エクセルの散布図で新たに入力した値のデータラベルが空欄になる現象 1 2022/04/26 09:31
- Excel(エクセル) エクセルで文字の少し変わった計を取りたい 6 2023/05/30 23:19
- Visual Basic(VBA) 顧客ごとに違う点検案内を作成するマクロ 4 2022/09/16 05:34
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
不正アクセスされてるのでしょうか
-
PowerPointの表内のカンマ
-
【VBA】PDF出力に任意のファイ...
-
エクセルの計算式でコンマを付...
-
Wordの差し込み印刷で空白行が...
-
LINEのこの空白ってどんな意味...
-
Excelのテーブル上のセルの保護...
-
結合されたセルの一部を変更す...
-
EXCELでタイトル行と一番下の行...
-
名簿の漢字名を関数で半角カナ...
-
エクセルでleft関数の結果が表...
-
16桁以上の「0」に変換されてし...
-
エクセルで行の一番上にセルに...
-
EXCEL 連動したドロップダウン...
-
DATEDIFで作成した勤務年数の並...
-
エクセルで「-3E+06」と...
-
エクセルでセル内改行の1行目...
-
エクセル 数式の無効化
-
セル上に表示された見かけ上の...
-
エクセルでの『セルの書式設定...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
不正アクセスされてるのでしょうか
-
EXELマクロ計算式
-
エクセルにて2つの条件を満た...
-
エクセルで「オブジェクトがは...
-
行の非表示の条件について
-
エクセル2000のマクロでこ...
-
Google スプレッドシートで、セ...
-
Excelで作成する家計簿の残高...
-
PowerPointの表内のカンマ
-
【VBA】PDF出力に任意のファイ...
-
EXCELでタイトル行と一番下の行...
-
LINEのこの空白ってどんな意味...
-
Wordの差し込み印刷で空白行が...
-
エクセルで「-3E+06」と...
-
エクセルでオートサムを使った...
-
Excelのテーブル上のセルの保護...
-
EXCEL 連動したドロップダウン...
-
エクセルの計算式でコンマを付...
-
エクセルでハイパーリンクのコピー
-
exselの質問です
おすすめ情報