- ベストアンサー
エクセルVBA:日付データの変換がうまくいかない2
D-Matsuの回答
csvでやってる限り無理です。なにせアレはただのテキストファイルなので、各セルに対する書式は保存できません。
関連するQ&A
- EXCEL VBAでのCSV出力について
EXCELに入力されたデータをCSV出力するプログラムを作成しました。データには日付が入っており年月日がYYYY/MM/DDの形で入力されています。これをハンド作業で名前をつけて保存でCSVに出力すると年月日はそのままの状態で保存されますが、VBAで保存するとMM/DD/YYYYの形になってしまいます。この状態で保存されると、次にEXCELで読み出すと年月日が文字列扱いになってしまいます。新しいマクロの記録で行っても結果は同じでした。 VBAで保存する際、YYYY/MM/DDで保存する方法はないでしょうか。 また、MM/DD/YYYYで保存されたCSVを日付としてEXCELに認識させる方法はあるでしょうか。 教えてください。よろしくお願いします。
- ベストアンサー
- その他(プログラミング・開発)
- Excel VBA で日付を4ケタの数値に変換させるには?
ある日付データを 『月』と『日付』のみの4ケタの"文字列"にさせて表示処理させたいのですが、困っております。 現在、VBAを使用しないで処理させると…こんな感じで困っています。 1.日付を yyyy/mm/dd 表示 2.編集~ 『/』のみを全て『0』に変換 3.RIGHT関数で4ケタ(または5ケタ)抜き取る *データ* 日付 yyyy/mm/dd 変換 RIGHT(4ケタ) 1月5日 2005/1/5 20050105 0105 1月10日 2005/1/10 200501010 0110 ・ ・ ・ ・ ▲不具合状況 1."1月10日" のように日付が2ケタになる日は "1010" のように表示がずれる。RIGHT(○,5) で対処する方法もあるが…効率があまり良くない。 2."yyyy/mm/dd" のデータを直で "RIGHT( )" で処理させると思ったとおりの値が戻ってこない。 yyyy/mm/dd RIGHT() 2005/1/5 → 8537 …変な値が戻ってくる? VBAで一気にやる方法ありますでしょうか? お知恵を拝借ください!
- ベストアンサー
- Visual Basic
- (VBAにて)日付でデータを抽出するやり方
ド素人なのですが、上司にマクロ作成を依頼され困っています。 下記に内容を記しますので、教えて下さい。 お願いします。 ・VBAを使ってExcelで管理してある管理表(下記参照)を 「発生年月日」をキーにして 「開始月:yyyy/mm」と 「終了月:yyyy/mm」をそれぞれ入力して、コマンドボタンを押したら その指定した範囲内のみのデータを別シートに表示するように して欲しい。 (例) 開始月:2007/8 終了月:2007/11 →2007年8月~2007/11月分の全データが別シートに表示される) ・管理表はこんな感じです。(大体、月に4件ぐらいあります) 発生年月日 件名 内容 完了日 (yyyy/mm/dd) (障害件名) (障害内容) (yyyy/mm/dd) よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- Excel VBAについて
Excel VBAについて ExcelのセルA1に日付データ(yyyy/mm/dd hh:mm)が入っています。 このエクセルファイルを開いている間、セルA1の日付(時分)が更新されたらマクロを実行するようにしたいのですが、どのようにしたらよいのでしょうか。 セルA1の日付データが更新されるタイミングは決まっていません。 セルA1の日付データが更新されたらマクロ実行というのが難しいのであれば、 10秒おきにマクロを実行というようなことができないでしょうか。 ご教授願います。
- ベストアンサー
- Visual Basic
- Excel97の日付の書式設定
現在Excel97で日付入力をしたいのですが、 最終的に演算に使用する日付で yyyy/mm/ddとyyyy/mmどちらでも入力できる書式設定を探しています。 yyyy/mm/ddの指定にするとyyyy/mmと入力してもyyyy/mm/01となってしまいます。 yyyy/mmのセルとdd専用のセルを別に作ると、ddを入力した時に 閏年のエラーチェックなどがかけられないので演算部分(1年後該当日前日の指定等)がうまく働きません。 いい方法がありましたら教えてください。
- 締切済み
- オフィス系ソフト
- エクセルVBA:日付データの変換がうまくいかない
久しぶりにVBAプログラムでハマってしまったので、教えてほしいです。 (1)エクセルシート上のボタンを押す (2)セルの内容を読み込む (3)CSVファイルに出力する というプログラムを組んでいるのですが、variant型で作った 日付のデータの形が変になってしまいます。 入力時は yyyy/mm/dd なのですが、出力されたCSVファイルを見ると、 mm/dd/yyyy と勝手に変換されていました。 何とか修正しようと試みたのですがうまくいきません。 ソースを書き込みます。 Dim data_input(11) As Variant '項目数11項目 Dim i As Integer Dim j As Integer Dim mydir As String Dim conv_data As Variant 'データ変換用 Dim rng As Variant Dim input_date As Date '入力日付(日付型) Dim conv_date As Variant '変換後の日付(ヴァリアント型) i = 0 For i = 0 To 8 data_input(i) = Worksheets("画面").Cells(4 + i, 3) Next i 'A列の一番下のセルを検索する e = Worksheets("local_data").Cells(1, 1).End(xlDown).Row '終端検索(空白のセルまで検索) '日付のデータはそのままCSV化するとおかしな表示となってしまうので、テキスト文字列に変換する 'For Each rng In Range("A1:A10") 'テキスト文字列に変更します。 ' rng.Value = "'" & rng.Text←何故か上手くいかなかった 'Next rng e = e + 1 '最終行+1 For i = 0 To 8 '申込日の時は文字化する為、別処理にする If (i = 0) Then input_date = data_input(i) tmp = CVar(input_date) 'Date型からVariant型に変換し、文字データとして書き込む 'tmpのデータを解体して組み替える 'split? Dim MyStr() As String 'この地点では月/日/年 MyStr() = Split(tmp, "/") '年/月/日に戻す MyStr (0) '月 MyStr (1) '日 MyStr (2) '年 '再結合する tmp = MyStr(2) & "/" & MyStr(0) & "/" & MyStr(1) Worksheets("local_data").Cells(i, i + 1) = tmp 'Worksheets("local_data").Cells(e, 1) = tmp Else Worksheets("local_data").Cells(e, i + 1) = data_input(i) '上部で入力したデータを書き込む End If Next i どうにかyyyy/mm/ddの形で日付が表示されるようにしたいのですが・・・・・ どなたか助言をお願いします。
- ベストアンサー
- その他(プログラミング・開発)
- yyyy/mm/ddの日付に一括変換するマクロ
[セルの書式設定] の [表示形式]が標準(日付ではない)で単なる文字列となっている「mm-dd-yyyy」や「mm/dd/yyyy」のデータをマクロで「yyyy/mm/dd」の日付データに一括変換するマクロを教えてください。 たとえば、日付データが列Aにある場合にはDATE関数で、 =DATE(RIGHT(A2,4),LEFT(A2,2),MID(A2,4,2)) でも変換可能ですが、対象ファイルが多数、各ファイルにも対象の列が多数、そしてファイルの更新頻度も多いため、DATE関数を使用することは現実的ではない事情があります。 このためマクロを使用して処理させたいです。 添付のサンプルの例で一括変更するマクロを教えてください。 なお、Excelは2007を使用しています。
- ベストアンサー
- オフィス系ソフト
- VBA:日付をシリアル値にできるの関数教えてください。
VBAにより、あるセルに"yyyy / mm / dd hh:mm:ss"のフォーマットで日付を記入しました。それを手動で書式を標準にすると例えばシリアル値38148.4768981481になります。これをVBA上でできる関数を知りたいです。つまり、日付をシリアル値にできるVBAの関数を教えて頂きたいです。宜しくお願いいたします。
- ベストアンサー
- Visual Basic
- EXCEL 日付の入力形式
こんにちは。 日付が、dd/mm/yyyyの形式で入力されたデータをもらいました。 関数を利用したいのでEXCELに日付として認識させたいのですが、 セルの書式設定で設定してもだめなようです。 質問 1)yyyy/mm/ddの形式で入力されていないと日付として認識されないのでしょうか? 2)現在の形式のまま、日付として認識させる方法はありますか? 3)dd/mm/yyyyをyyyy/mm/ddに変換する方法はありますか? 以上、よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
お礼
返信ありがとうございます。 日付は諦めます・・・・