久しぶりに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.3
- 回答日時:
Worksheets("local_data").Cells(i, i + 1) = tmp
これを書き換えてもダメでしたか?
Worksheets("local_data").Cells(i, i + 1) = Format(tmp,"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の仕様なのかもしれませんが・・・・・
お探しの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も見ています
-
新NISA制度は今までと何が変わる?非課税枠の拡大や投資対象の変更などを解説!
少額から投資を行う人のための非課税制度であるNISAが、2024年に改正される。おすすめの銘柄や投資額の目安について教えてもらった。
-
Excel VBAでCSVファイルを読込むと何故か文字列が日付に変換さ
その他(Microsoft Office)
-
エクセルVBA ユーザーフォームのTextBoxを日付にしたい
Excel(エクセル)
-
ExcelVBAでセルを編集状態にする方法
Excel(エクセル)
-
-
4
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
5
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
6
エクセルで日付が逆に登録されています
Excel(エクセル)
-
7
array関数で格納した配列の型を変更する
Visual Basic(VBA)
-
8
エクセルのVBA 特定のセルでエンターキーでマクロ実行
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ポインター引数の関数でコンパ...
-
stable diffusionのエラー
-
POSTで配列のデータを渡す方法は?
-
pythonでDBのカラム名で取得し...
-
C言語 構造体の名前欄?を小文...
-
平滑化フィルタ
-
パイソン、データーサイエンス...
-
matlabでのRRI検出
-
テキストファイルの結合について
-
基本クラスのポインタから、特...
-
ループ変数の変更
-
printfの%eで指数部分の桁数を...
-
花の名前を教えて下さい。
-
10Mバイトて文字数に すると何...
-
Excel VBA メール作成について ...
-
ビットスワップとバイトスワッ...
-
number 改行が追加できない
-
UTF-8で5~6バイトになる文字コ...
-
Rstudioによるテキストマイニン...
-
char str[256]の256の意味は?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ポインター引数の関数でコンパ...
-
stable diffusionのエラー
-
printfの%eで指数部分の桁数を...
-
エクセルVBA:日付データの変換...
-
int型(2バイト)データの分割
-
c言語の多次元配列で1から100ま...
-
C#でのswitch文
-
【Excel VBA】10進数を2進数に...
-
途中経過も表示するプログラム
-
CreateProcessでの環境変数の設...
-
pythonでDBのカラム名で取得し...
-
C言語についてです! 同じ年の...
-
linuxのシェルでファイル名に先...
-
c言語 配列から数字だけをint型...
-
c言語での wavファイルの編集(...
-
matlabのソースコードをpython...
-
ビットデータのチェック方法
-
10個の実数に対する降順ソート...
-
python 気象データの取得
-
C言語の構造体にてバブルソート...
おすすめ情報