日々あるデータがCSV形式で送られてきます。
内容はA~AFまでのデータがあります。
そこでマクロを組みたいのです。
マクロを実行した後に画面を見ながら違うソフトに入力処理を行い、
終了後に違うマクロを実行した上で印刷をしたいと考えています。
先ず今回は第一段階のマクロを御教授願えればと思います。
A~AFのうち、残したいのはBDEGKNPQRSVYZACの
14列で、それ以外はすべて削除する。
Dには顧客名が入っています。Eには部署名が入っています。
但しEは空白の場合もあります。Dには必ず名前が入っています。
そのD,Eを結合させたい。結合させた後の顧客名、部署名の間には
スペースは必要ありませんが、全体を左寄せにする。
KNSVYZには数字が入力されていますが「,」がありません。
それぞれ「,」を入れたい。
それとSVYZのみ一番下に列の合計を出したい。
以上の内容ですが補足が必要なら申し付け下さい。
宜しくお願い致します。
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
はじめまして joy9999 さん
>エクセル2000でこんなマクロを組みたいのですが・・・
組めば良いでは無いでしょうか?もちろん貴方がですよ。
>14列で、それ以外はすべて削除する。
というのはデータ内容を消すのか列を削除することなのか
データクリアならば
Columns("C:C").Select: Selection.ClearContents
列削除ならが良いでしょう。
Columns("C:C").Select: Selection.Delete Shift:=xlToLeft
配列にして指定forなどで列を消しましょう。もちろんA:Cなどの指定でもよいでしょう。
>そのD,Eを結合させたい。結合させた後の顧客名、部署名の間にはスペースは必要ありませんが、全体を左寄せにする。
はい。書式が入っていますね?しか元データはCSVらしいので出力後はxls形式ですね。
DとEのうち長いほうにあわせてセルの内容を連結していきましょう
range("D"&i).value=range("D"&i).value & range("E"&i).value _
range("E"&i).value=""
行数は
Range("D65536").End(xlUp).Row
などとすれば簡単に最終行を取得できます。
そして
ツール>新しいマクロ>セルを指定して右クリック>
セルの書式と設定>配置タブ>横位置>左詰め(インデント)
マクロを終了させる。
はい。左寄せさせるマクロが生成できました。これを処理に反映させてください。
>KNSVYZには数字が入力されていますが「,」がありません。それぞれ「,」を入れたい。
ただ数値をにカンマをつけたいと言われてもわかりません。値ひとつおきにカンマを挿入する処理でもいいですか?
まぁ、通常の数値ならマクロ登録しながら書式を設定しても良いでしょう。
または値をlenで全体の長さをしらべ区切りたい値,(カンマ)を長さで割って区切り文字挟みましょう。まぁ通常数値なら3おきにでしょうがどのように扱いたいかわかりません。
>それとSVYZのみ一番下に列の合計を出したい。
その行の最後にsum関数をセルに挿入すればよいでしょう。
もちろん、その行末端までforで値を連結し続けて計算でもかまいません。
はい。初心者程度のVBAの能力があれば上記を参考に処理を並べるだけでこの問題は解決します。
もしもこれで問題解決できないようであれば基礎知識が足りません。
処理のメンテナンスもできないでしょう。
ANo.3さんの言うとおりここは下請けコーナーでもVBAのサポートセンターでもありません。
貴方の質問がどのようなものなのかは下記が参考になります。
http://help.okwave.jp/okwave/beginner/prohibitio …
【その他迷惑行為】>■丸投げ・依頼
の項などが参考に成るでしょう。
本来VBAもといプログラム・スクリプトカテゴリではあなた自身が
「こういう処理でここまでできましたがこういう処理が解決できません
この処理を解決する方法または記述をおしえていただけないでしょうか?」という流れが正しい質問の仕方となります。
問題解決方法・貴方の質問の何が悪かったかも含め極力丁寧に説明したつもりです。
追加処理・処理違い・補足等あればいってください。
No.3
- 回答日時:
この質問はVBAコードを教えろという、丸投げの質問です。
このコーナーの規約上歓迎されません。
もう少し勉強して、問題点を絞って質問すべきです。
したいということを書けば、コードを挙げてくれる、下請け的コーナーになってはならないと思います。
内容的にも、テキストファイルの読み込み
Split関数で分離
セルの結合と
表示形式の設定程度で、
解説書にもWEBにも載っていないようなものを必要としないと思います。
No.2
- 回答日時:
適当にアレンジしてください。
Sub test()
Dim r As Long, c As Long, i As Long
Dim d() As String
Const del = "A:A,C:C,F:F,H:J,L:M,O:O,T:U,W:X,AA:AB,AD:AF" '//←削除する列範囲
Const comma = "K,N,S,V,Y,Z" '//←カンマ表示する列
With ActiveSheet
'//カンマ表示処理と合計表示
d = Split(comma, ",")
For i = 0 To UBound(d)
c = .Range(d(i) & "1").Column
r = .Cells(Rows.Count, c).End(xlUp).Row
If i > 1 Then
.Cells(r + 1, c).FormulaR1C1 = "=SUM(R[" & Str(-r) & "]C:R[-1]C)"
r = r + 1
End If
.Cells(1, c).Resize(r, 1).NumberFormatLocal = "#,##0"
Next i
'//不要行削除
d = Split(del, ",")
For r = UBound(d) To 0 Step -1
.Range(d(r)).Delete
Next r
'//セル結合
For r = .Cells(Rows.Count, 2).End(xlUp).Row To 1 Step -1
.Cells(r, 2).Value = .Cells(r, 2).Text & .Cells(r, 3).Text
.Cells(r, 3).Value = ""
.Cells(r, 2).Resize(1, 2).MergeCells = True
.Cells(r, 2).NumberFormatLocal = "@"
.Cells(, 2).HorizontalAlignment = xlGeneral
Next r
End With
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) vbaエクセルマクロについて あるデータを作成し、デスクトップに.xlsx形式で保存するマクロを作成 6 2023/03/03 18:05
- Visual Basic(VBA) vbaエクセルマクロについて あるデータを作成し、デスクトップに.xlsx形式で保存するマクロを作成 2 2023/03/02 18:54
- Visual Basic(VBA) 指定月分の顧客データファイルを統合して並べ替え、所定の場所に貼り付ける (再質問) 4 2022/09/14 22:51
- Visual Basic(VBA) 指定月分の顧客データファイルを統合して並べ替え、所定の場所に貼り付ける 3 2022/09/10 07:55
- Excel(エクセル) エクセルでキーリストからデータを取り出して1枚1枚印刷するには? 11 2022/06/27 09:52
- Excel(エクセル) マクロだと数式が表示される 2 2022/09/10 14:48
- 会計ソフト・業務用ソフト Excelマクロに詳しい方教えてください 1 2023/06/29 16:18
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて 重複したものがあれば行を削除するとい 1 2023/02/27 18:49
- Excel(エクセル) VBA 文字列変換と指定した列にある日時データから時間を削除する方法について 2 2022/04/14 15:23
- Visual Basic(VBA) セルに抜けた番号の代わりに空白を挿入する 4 2023/04/10 20:29
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
条件に応じて特定の行を非表示...
-
Excelでセル内の数式は残し値だ...
-
Excel2007で、太字にした行のみ...
-
Excel にて非表示行を探すワー...
-
エクセル VBA 小数点を含む数字...
-
Excelで連続印刷をするマクロ
-
yyyy/mm/ddの日付に一括変換す...
-
Excel(VBA)データ入力に応じて...
-
wordのvbaでハイパーリンク設定...
-
Excel2007 セルを右方向に削除...
-
整数行を残し小数点の行を削除...
-
VBA シングルクォーテーション...
-
エクセルでのランダム抽出・並...
-
エクセルマクロで表をコピーし...
-
区切り文字以降を16進数を10進...
-
値貼り付けをしても書式も貼り...
-
エクセルで同じ行中にある先頭...
-
並べ替えのマクロで対象行の範...
-
「マクロ」の足し算の式を教え...
-
エクセルを使って英文から単語...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
条件に応じて特定の行を非表示...
-
Excelでセル内の数式は残し値だ...
-
Excel2007で、太字にした行のみ...
-
Excelで連続印刷をするマクロ
-
「マクロ」の足し算の式を教え...
-
エクセル VBA 小数点を含む数字...
-
エクセルで全ての数字間にカン...
-
(Excel2003)すぐ左の最後の行...
-
Excel(VBA)データ入力に応じて...
-
Excel にて非表示行を探すワー...
-
エクセルで、行ごとの並び替え...
-
エクセル2003でマクロをおこな...
-
excel ある部分だけをコピペし...
-
行の入れ替えってどうするの?
-
Excelで周期的に列を削除する方法
-
整数行を残し小数点の行を削除...
-
EXCEL マクロで「キーワード入...
-
VBA コピーを有効行までループ...
-
Excel2007 セルを右方向に削除...
-
値貼り付けをしても書式も貼り...
おすすめ情報