質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

VBScript

VBScript(Visual Basic Scripting Edition)はMicrosftが開発したスクリプト言語であり、Visual Basicのサブセットです。

Q&A

1回答

227閲覧

CSVからExcelに変換時に「○/○」のようなデータが日付変換され「○月○日」となる

t_tokyo

総合スコア0

CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

VBScript

VBScript(Visual Basic Scripting Edition)はMicrosftが開発したスクリプト言語であり、Visual Basicのサブセットです。

0グッド

0クリップ

投稿2024/10/24 10:43

実現したいこと

CSVからExcelに変換時に「○/○」のようなデータが日付変換されず「○/○」のまま変換したい

発生している問題・分からないこと

■前提
vbsでcsvからExcelに変換している

■実現したいこと
特定ファイルの特定の列に「1/2」のようなデータが入るので、それをExcel変換時も「1/2」と変換したい。

該当のソースコード

vbs

1Set objExcel = CreateObject("Excel.Application") 2objExcel.Visible = False 3objExcel.DisplayAlerts = False 4 5' カレントディレクトリ内のすべてのCSVファイルを取得 6Set objFSO = CreateObject("Scripting.FileSystemObject") 7Set folder = objFSO.GetFolder(".") 8bkFolderPath = objFSO.BuildPath(folder.Path, "bk") 9 10' "bk" フォルダが存在しない場合は作成 11If Not objFSO.FolderExists(bkFolderPath) Then 12 objFSO.CreateFolder(bkFolderPath) 13End If 14 15For Each file In folder.Files 16 If LCase(objFSO.GetExtensionName(file.Name)) = "csv" Then 17 ' CSVファイルを開く 18 Set objWorkbook = objExcel.Workbooks.Open(file.Path) 19 ' Excelファイルとして保存 20 objWorkbook.SaveAs objFSO.BuildPath(folder.Path, objFSO.GetBaseName(file.Name) & ".xlsx"), 51 21 objWorkbook.Close 22 23 ' CSVファイルを "bk" フォルダに移動 24 objFSO.MoveFile file.Path, objFSO.BuildPath(bkFolderPath, file.Name) 25 End If 26Next 27 28objExcel.Quit

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

今のところ特にありません。

補足

特になし

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

すベてのデータを文字列として処理していいなら比較的簡単に出来ますが
どのセルに◯/◯が現れるかわからず、対象だけを文字列にしたいというのだとちょっと難しいです。

「ActiveSheet.QueryTables.Add」メニューでいうと「データ→テキストファイル」で空のワークシートにテキストを取り込むのが手っ取り早いです

もしくはcsvファイル自体を拡張していいなら

csv

1"a",123,"1/1" 2"b",456,="2/2"

のようなデータのもたせ方をすると
1行目の1/1は1月1日になってしまいますが、2行目の2/2は「2/2」で表示されます

投稿2024/10/24 11:02

yambejp

総合スコア116443

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

t_tokyo

2024/10/24 11:25

ありがとうございます。 対象ファイルは1つだけなので、自動で変換はしたいですが以下の手順で手動でExcelに変換することにします。 >データ→テキストファイル」で空のワークシートにテキストを取り込むのが手っ取り早いです
xail2222

2024/10/25 18:41

「特定ファイルの特定の列」という事だから、対処できるのでは?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問