
はじめて質問させて頂きます。
VBA初心者ですが、宜しくお願いします。
CSVデータをエクセルにコピペしてから処理することを考えています。
CSVのデータはエクセルで開くと以下の様に入力されています。
| A列 | B列 | C列 |
1行目| 日付 時刻 |データ1|データ2|
2行目|2014/5/14 13:00:01| ○ | △ |
3行目|2014/5/14 13:00:14| ○ | △ |
時刻は24h制で入力されています。
A列の日付と時刻の間にはスペースがあり、これをVBAでスペース区切りをしたいのです。
B列に列を追加し、スペース区切りの処理をしようと思い、自動記録すると以下のようになりました。
Sub Macro1()
Columns("B:B").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Columns("A:A").Select
Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlNone, ConsecutiveDelimiter:=True, Tab:=True, Semicolon _
:=False, Comma:=False, Space:=True, Other:=False, FieldInfo:=Array( _
Array(1, 5), Array(2, 1)), TrailingMinusNumbers:=True
End Sub
ところが、このマクロを実行すると「コピーまたは移動先のセルの内容を置き換えますか?」のメッセージが表示されます。(記録する際には表示されませんでした。)
原因を探ったところ、自動記録のマクロを実行すると時刻が12時間制に変更されB列に、
C列にAM/PMが書き込まれます。(A列の日付は問題なく処理されます。)
B列に24時間制の時刻が書き込まれるようにしたいのですが、
何か不足してるとことがあるのでしょうか?
方法を教えて下さい。
お手数ですが、宜しくお願いします。
No.1ベストアンサー
- 回答日時:
こんばんは!
データ → 「区切り位置」の方法でなく、
A列のシリアル値そのものを利用する方法です。
B列に日付・C列に時刻データを表示させるとします。
Sub Sample1()
Dim lastRow As Long
lastRow = Cells(Rows.Count, "A").End(xlUp).Row
With Range(Cells(2, "B"), Cells(lastRow, "B"))
.Formula = "=INT(A2)"
.Value = .Value
.NumberFormatLocal = "yyyy/m/d"
End With
With Range(Cells(2, "C"), Cells(lastRow, "C"))
.Formula = "=MOD(A2,1)"
.Value = .Value
.NumberFormatLocal = "h:mm:ss"
End With
End Sub
こんな感じではどうでしょうか?m(_ _)m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) エクセルのマクロについて教えてください。 2 2023/02/04 14:20
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Excel(エクセル) 表示形式、文字列セル(列)に数式を入力するには マクロ 1 2022/09/18 10:53
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/06 13:01
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/04 12:47
- Excel(エクセル) エクセルのVBAにショートカットキーの割り当て 3 2022/07/13 14:19
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- XML エクセルのマクロについて教えてください。 3 2023/02/06 09:06
- Excel(エクセル) Excel2007での条件付き書式について 6 2023/05/02 10:56
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
B列の最終行までA列をオート...
-
Worksheets メソッドは失敗しま...
-
Excelで、あるセルの値に応じて...
-
Cellsのかっこの中はどっちが行...
-
vba 2つの条件が一致したら...
-
VBA 何かしら文字が入っていたら
-
データグリッドビューの一番最...
-
VBAのFind関数で結合セルを検索...
-
文字列があるセルを認識したい...
-
IIF関数の使い方
-
Changeイベントでの複数セルの...
-
Excel VBAでフォントの色が違う...
-
エクセルVBA シートモジュール...
-
rowsとcolsの意味
-
空白セルをとばして転記
-
URLのリンク切れをマクロを使っ...
-
難問 VBA 今日の日付より前に対...
-
Sheet1をフィルターで「りんご...
-
VB2005EE:DataGridViewでチェ...
-
【VBA】2つのシートの値を比較...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelで、あるセルの値に応じて...
-
vba 2つの条件が一致したら...
-
Worksheets メソッドは失敗しま...
-
B列の最終行までA列をオート...
-
Cellsのかっこの中はどっちが行...
-
IIF関数の使い方
-
Changeイベントでの複数セルの...
-
【VBA】2つのシートの値を比較...
-
VBA 何かしら文字が入っていたら
-
URLのリンク切れをマクロを使っ...
-
VBAのFind関数で結合セルを検索...
-
DataGridViewに空白がある場合...
-
VBAを使って検索したセルをコピ...
-
文字列の結合を空白行まで実行
-
データグリッドビューの一番最...
-
VBAでのリスト不一致抽出について
-
エクセル 2つの表の並べ替え
-
rowsとcolsの意味
-
【Excel VBA】 B列に特定の文字...
-
VBA 列が空白なら別のマクロへ...
おすすめ情報