![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
久しぶりに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の形で日付が表示されるようにしたいのですが・・・・・
どなたか助言をお願いします。
No.5ベストアンサー
- 回答日時:
>Range("A1").NumberFormatLocal = "yyyy/mm/dd"
>にて書式を変えてみようとしましたが、エラーが出てうまくいきませんでした。
どんなエラーですか?
Range("A1").NumberFormatLocal = "yyyy/mm/dd"
で問題ないはずです。
Cells(1, 1).NumberFormatLocal = "yyyy/mm/dd"
でもOKです。
local_dataシートのe行1列の場合は、
Worksheets("local_data").Cells(e, 1).NumberFormatLocal = "yyyy/mm/dd"
もしかして、書式が変更できないようロックが掛かっているということはないですか。
返信ありがとうございます。
デバッグしていたら、何が起こっていたのかがやっと解ったので、もう一度質問を作成します。
MSの仕様なのかもしれませんが・・・・・
No.3
- 回答日時:
Worksheets("local_data").Cells(i, i + 1) = tmp
これを書き換えてもダメでしたか?
Worksheets("local_data").Cells(i, i + 1) = Format(tmp,"yyyy/mm/dd")
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) vba 重複データ合算 5 2023/07/05 18:55
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Visual Basic(VBA) VBA 別ブックからの転記の高速化について VBA 別ブックからの転記の高速化についてご教授下さい。 19 2022/07/26 13:07
- Excel(エクセル) VBAについて 3 2022/06/19 18:19
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- Visual Basic(VBA) ①ExcelVBAでカレンダーを作り、別のユザーフォームで日付を入力したいのですがエラーになります。 1 2023/02/17 18:39
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
このQ&Aを見た人はこんなQ&Aも見ています
-
「環境が人を育てる」って本当?環境によって人格や生き方は本当に変わるのか
環境が人生に与える影響は実際どれほどのものなのか、専門家の田宮由美さんに伺った。
-
Excel VBAでCSVファイルを読込むと何故か文字列が日付に変換さ
その他(Microsoft Office)
-
VBAでFormat がうまく使えない
Excel(エクセル)
-
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
-
4
エクセルVBA ユーザーフォームのTextBoxを日付にしたい
Excel(エクセル)
-
5
メッセージボックスを前面に表示させるには?
Visual Basic(VBA)
-
6
VBAでの日付の置換方法を教えてください
Excel(エクセル)
-
7
エクセルのVBA 特定のセルでエンターキーでマクロ実行
Excel(エクセル)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ポインター引数の関数でコンパ...
-
stable diffusionのエラー
-
linuxのシェルでファイル名に先...
-
離散フーリエ変換のプログラム...
-
C言語 構造体の名前欄?を小文...
-
PINVOKEで構造体配列をマーシャ...
-
C言語 ファイル内のデータと入...
-
'dataType' 引数を Null にする...
-
結城未来さんの年齢
-
エクセルVBA:日付データの変換...
-
C言語についてです! 同じ年の...
-
画像処理のチェーンコード
-
matlabのソースコードをpython...
-
C言語 2分木探索について質問です
-
printfの%eで指数部分の桁数を...
-
掲示板CGIで新着順ではなく古い...
-
C言語 平均を求めるプログラム
-
C言語でPBYTE型からDOUBLE型へ変換
-
UTF-8で5~6バイトになる文字コ...
-
DataGridViewの特定列に入力さ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ポインター引数の関数でコンパ...
-
stable diffusionのエラー
-
printfの%eで指数部分の桁数を...
-
【Excel VBA】10進数を2進数に...
-
int型(2バイト)データの分割
-
pythonでDBのカラム名で取得し...
-
エクセルVBA:日付データの変換...
-
C#でのswitch文
-
linuxのシェルでファイル名に先...
-
C言語の構造体にてバブルソート...
-
c言語での wavファイルの編集(...
-
'dataType' 引数を Null にする...
-
H8/36064を使ったシリアル通信...
-
オセロゲーム 2次元配列で困...
-
10個の実数に対する降順ソート...
-
c言語の多次元配列で1から100ま...
-
c言語 配列から数字だけをint型...
-
matlabのソースコードをpython...
-
Cのプログラムがどうしても動き...
-
テキストファイルの結合について
おすすめ情報