久しぶりに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 ユーザーフォームのTextBoxを日付にしたい
Excel(エクセル)
-
ExcelVBAでセルを編集状態にする方法
Excel(エクセル)
-
-
4
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
5
テキストボックス(VBA)でEnterを押したときに作動するマクロ
Access(アクセス)
-
6
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
7
テキストボックスの番号を使ったFor~Next文について
Visual Basic(VBA)
-
8
メッセージボックスを前面に表示させるには?
Visual Basic(VBA)
-
9
エクセルで日付が逆に登録されています
Excel(エクセル)
-
10
Application.ScreenUpdating = Falseが効きません
Visual Basic(VBA)
-
11
array関数で格納した配列の型を変更する
Visual Basic(VBA)
-
12
エクセルのVBA 特定のセルでエンターキーでマクロ実行
Excel(エクセル)
-
13
VBA 指定した列にある日時データから時間を削除する方法について
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ポインター引数の関数でコンパ...
-
stable diffusionのエラー
-
エクセルVBA:日付データの変換...
-
ビットデータのチェック方法
-
linuxのシェルでファイル名に先...
-
FFTがうまくできない
-
char str[256]の256の意味は?
-
UTF-8で5~6バイトになる文字コ...
-
10Mバイトて文字数に すると何...
-
Excel VBA メール作成について ...
-
バイナリとBCDコード
-
ワイド文字のバイト数が取得で...
-
DataGridViewの特定列に入力さ...
-
「1TB」のHDDに日本語は何字入...
-
POSTメソッドの最大容量について
-
エクセルシート名の制限を変更...
-
PHPのCookieが有るか無いかで、...
-
デバイスコンテキストに書いた...
-
Line Inputにて改行があっても...
-
C言語でwin32apiを使ってnotepa...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
stable diffusionのエラー
-
ポインター引数の関数でコンパ...
-
printfの%eで指数部分の桁数を...
-
パイソン、データーサイエンス...
-
エクセルVBA:日付データの変換...
-
C#でのswitch文
-
int型(2バイト)データの分割
-
CreateProcessでの環境変数の設...
-
【Excel VBA】10進数を2進数に...
-
python 気象データの取得
-
テキストファイルの結合について
-
RegQueryValueExでの2バイト文字
-
linuxのシェルでファイル名に先...
-
'dataType' 引数を Null にする...
-
C言語についてです! 同じ年の...
-
オセロゲーム 2次元配列で困...
-
PINVOKEで構造体配列をマーシャ...
-
matlabのソースコードをpython...
-
C言語の勉強しています。すみま...
-
System.Collections.ArrayList ...
おすすめ情報