![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
先日質問いたしました件2010/12/25 10:43(日付時刻編集して保存)
下記ihyou_Pさまに教えて頂いたマクロです。
(1)データ降順を昇順して保存する。
(2)マクロブックとは別のブックで開き別名でCSV保存し最初に開いたファイルは保存しないで閉じる。
以上
ihyou_Pさまお時間がございましたらどうぞよろしくお願いします。m(__)m
Sub テスト2()
Sheet1.Select
Range("A1").Select
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;C:\TEST.csv", Destination:= _
Range("A1"))
.TextFileCommaDelimiter = True
.TextFileColumnDataTypes = Array(5, 1, 1, 1)
.Refresh BackgroundQuery:=False
End With
cnt = Application.WorksheetFunction.Count(Range("A:A"))
Sheet2.Select
Range("A1").Formula = "=(day(Sheet1!A1)*10000)+(HOUR(Sheet1!B1)*100)+minute(Sheet1!B1)"
Range("B1").Formula = "=Sheet1!C1*10"
Range("C1").Formula = "=Sheet1!D1*10"
Range("A1:C1").Select
Selection.Copy
For X = 2 To cnt
Cells(X, 1).Select
ActiveSheet.Paste
Next
Cells.Select
Application.CutCopyMode = False
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("A1").Select
End Sub
No.2ベストアンサー
- 回答日時:
別に面倒ではありませんが,思いつきでダラダラ次々あれもこれもと継ぎ足しの質問を垂れ流すのは,マナー違反と考えてください。
新たな課題問題は新しいご相談投稿として,何が判らない出来ないのか明確にして質問を出し直すようにしてください。
#なお,その際に「誰か名指し」して回答を求めるのは,こちらの質問掲示板ではルール違反なので注意してください。つまり新しく改めて皆さんに回答を求めるべく質問内容を書き直し,前の質問を見ていた人だけにしか判らない書きぶりをしてはいけませんという事に配慮してください。
それで
>上記データは1時間毎のデータですが13:30が抜けています。
13:30が抜けていると判るのは,それが判っているあなたが見ているからです。
抜けているという意味では13:00も14:00も13:15だって抜けていて,データがありません。そういった屁理屈ではなく「どうあるべき(ロジック・機能)」をまずご自分のアタマを使って明確にして,はじめてマクロを書く事ができると承知してください。
それで結局の所,元データのA列B列は実はあんまりどうでもよくて,最初から決め打ちの
ある日付区間 の 0時半から23時半まで
という枠組みが先にあって,そこに得られたデータを埋めていきたいというのが本当にやりたかった事なのだとしたら,そういう方向でまたやり直しでマクロを組み立てていった方が正解じゃないかなと思います。
マクロの作成の基本方針の例:
1.日付区間を決定する
2.区間の日数×24行ごとに「日時分」形式の表の枠組を作成する ←ここが追加ご質問の説明不足
3.得られている元データから,用意した枠組みの該当セルに値を転記する
4.データが入らなかったセルに,それぞれ一つ上のデータを補填する
という具合に,もう一度「どうすればいいのかどうしたいのか,そしてここまでに教わった内容を勉強してなおどこが自分では出来ないのか」キチンと作戦を考えて,ご質問を書き直して改めて投稿してみてください。
ご指摘頂きありがとうございます。
知りたい一心で思うままに書き込みしたことをとても反省しています。
本当に身勝手な書き込みを親切な皆様どうかお許しくださいませ。
少し勉強しあらためて出直したいと思います。
またその時はご協力よろしくお願いいたします。(拝)
No.1
- 回答日時:
C\TESTフォルダにあるTEST.csvを開いて処理し,同じフォルダにresult.csvという名前で保存し直します。
元のTEST.csvは保存せずに閉じます。
Sub macro1()
Dim w As Workbook
Dim r As Long
Set w = Workbooks.Open(Filename:="C:\TEST\TEST.csv")
w.Worksheets(1).Name = "csv"
r = w.Worksheets(1).Range("A65536").End(xlUp).Row
w.Worksheets.Add before:=w.Worksheets(1)
Range("A1:A" & r).Formula = "=DAY(SUBSTITUTE(csv!A1,""."",""/""))&TEXT(csv!B1,""hhmm"")"
Range("B1:C" & r).Formula = "=CSV!C1*10"
Application.DisplayAlerts = False
Range("A:C").Sort key1:=Range("A1"), order1:=xlAscending, header:=xlNo
ActiveSheet.SaveAs Filename:="c:\test\result.csv", FileFormat:=xlCSV
w.Close False
End Sub
素晴らしいです。バッチリ出来ました。
もうひとつ無理言っていいですか。
2010.12.24 16:30 13.8 11.9
2010.12.24 15:30 14.2 12.3
2010.12.24 14:30 15.6 13.4
2010.12.24 12:30 13.8 11.9
2010.12.24 11:60 14.2 12.3
2010.12.24 10:30 15.6 13.4
2010.12.24 09:30 16.2 14.2
上記データは1時間毎のデータですが13:30が抜けています。
その場合は下記のように12:30のデータをそのまま13:30に持ってくることは可能でしょうか?
(2時間抜けましても同じデータを挿入)
241630 138 119
241530 142 123
241430 156 134
241330 138 119
241230 138 119
241160 142 123
241030 156 134
240930 162 142
ご面倒でしょうが何卒よろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【変更】ファイルを閉じてダイアログで保存した時、更新したシートだけの処理の実行をする 5 2022/03/26 18:31
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/10/13 08:41
- Excel(エクセル) エクセル VBAでシートのコピーを作りたい 1 2023/05/18 07:42
- Visual Basic(VBA) エクセルのマクロについて教えてください。 3 2023/02/22 08:53
- Visual Basic(VBA) マクロを短くする 1 2023/01/15 00:11
- Visual Basic(VBA) データのある範囲を選択するVBAについて 2 2022/09/03 00:20
- Visual Basic(VBA) エクセルのマクロについて教えてください。 5 2023/06/02 08:44
- Excel(エクセル) 表示形式、文字列セル(列)に数式を入力するには マクロ 1 2022/09/18 10:53
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/03/07 14:05
- Excel(エクセル) エクセル 値をコピペした時に、条件付き書式で塗られた背景色もペーストさせる 2 2023/04/05 17:21
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
HPを書き換えたい
-
エクセルでのテプララベル作成
-
Googleの衛星写真はいつ掲載さ...
-
値がこの列の整合性制約に違反...
-
VBA 罫線について B列3行目から...
-
UNIX時間をEXCEL上で日付・時間...
-
データベースの選定について 要...
-
構文エラー:演算子がありませ...
-
データベース3000が終わり、新...
-
【パフォーマンス】ファイル読...
-
VBAかSQL?
-
accessのvbaでの実行時エラーに...
-
IPアドレスを数値に変換
-
SQLite3の許容される登録数は?
-
macのデータベースソフト探して...
-
SQL文ってなに?
-
表計算ソフトってエクセルのこ...
-
FDの初期化
-
I4のカード型データベースに変...
-
データーベースとはなんですか...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
キャッシュとバッファの違いは?
-
スタライズとは、どういう意味...
-
SQL Server にファイルを登録、...
-
Access 外部データ インポー...
-
値がこの列の整合性制約に違反...
-
LVMでHDDが壊れた時の対応
-
Thunderbirdのインポートの処理...
-
UNIX時間をEXCEL上で日付・時間...
-
VB.netのADOってなんですか?
-
CSVファイルの重複チェック
-
エクセルを取引先に渡したら何...
-
エクセルのマクロ
-
Perlで、「が」を、「...
-
VBでXMLデータをMS-ACCESS2000...
-
エクセルから、パワーポイント...
-
C#でint型をIntPtr型に変換した...
-
エクセルでのテプララベル作成
-
テクトロニクスのオシロスコー...
-
自作Androidアプリのデータ引き...
-
VBA 罫線について B列3行目から...
おすすめ情報