• ベストアンサー

VBAでメモ帳からの文字列を所定の日付形式で表示できない。

VBAによりメモ帳から日付「04/06/10」という文字をエクセル(CVS形式)のセルにコピーしました。しかし、表示は、6/10/2004となります。いろいろ、試しましたが2004/6/10(2004年6月10日)とはなってくれません。また、書式設定で日付で選択してみましたが、文字列としての認識なのが全く変更されません。これについてもDateValue関数などを施したりしましたが全く無理でした。どうすればよいか教えてください。宜しくお願いいたします。

  • e-l
  • お礼率45% (158/349)

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

メニューのデータ-外部データの取り込みから入って テキストファイルのインポート-ファイル名の指定- 次へ-次へ-(列のデータ形式)日付のYMDでやって見てください。 マクロの記録は Sub Macro1() With ActiveSheet.QueryTables.Add(Connection:="TEXT;C:\My Documents\aa8.txt", _ Destination:=Range("A1")) .Name = "aa8" .FieldNames = True .RowNumbers = False .FillAdjacentFormulas = False .PreserveFormatting = True .RefreshOnFileOpen = False .RefreshStyle = xlInsertDeleteCells .SavePassword = False .SaveData = True .AdjustColumnWidth = True .RefreshPeriod = 0 .TextFilePromptOnRefresh = False .TextFilePlatform = xlWindows .TextFileStartRow = 1 .TextFileParseType = xlDelimited .TextFileTextQualifier = xlTextQualifierDoubleQuote .TextFileConsecutiveDelimiter = False .TextFileTabDelimiter = True .TextFileSemicolonDelimiter = False .TextFileCommaDelimiter = False .TextFileSpaceDelimiter = False .TextFileColumnDataTypes = Array(5) .Refresh BackgroundQuery:=False End With End Sub (元データ) 04/06/10 04/06/01 04/05/31 04/05/20 (エクセルシート) 2004/6/10 2004/6/1 2004/5/31 2004/5/20

その他の回答 (1)

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.1

Format関数があります。 Range("C3") = Format(日付, "yyyy/m/d")

e-l
質問者

お礼

有難う御座いました。

関連するQ&A

  • 【Excelマクロ】 文字列から日付型へ変換したい

    AccessデータをExcelへ貼り付ける際、Access側の書式設定がyyyy/mm/ddでしたらExcelでも日付型として認識してくれますが、yyyy/mm/dd(aaa)と曜日を表記したデータはセルの書式を日付型にしても文字列として貼り付けられてしまいます。 ExcelのDATEVALUE関数を使用すれば日付型へ変換できるのは存じていますが、列/行を挿入することができません。 日付型へ変換できるマクロはありませんか? 変換したいセル番地は都度変動しますので、変換したいセル(複数列/行)を選択した状態からマクロを実行したいです。

  • 文字列を日付に変換

    エクセル2003を使っています。 あるセルに'2009/6/19等が入っています。 頭に'が入っているため、日付とは認識せずに文字列として認識している為、困っています。 どうやれば、日付に変換できるでしょうか? 関数やVBAでも良いので、やり方を教えて頂けないでしょうか?

  • Excelで日付の書式を指定文字列に変換

    Excelで日付の書式を指定文字列に変換 セルから日付情報を得て、文字列でyyyymmddに変換するには、どのようにすればいいでしょうか。VBA・関数のどちらでもかまいません。よろしくお願いします。

  • Excel VBAで文字列の日付を判定

    Excel VBAで文字列の日付を判定 文字列の書式で”19900101”などとセルに入力されている場合に実際に存在する日付かを判定する方法はありますでしょうか? たとえば、19990132などと入力されている場合はエラーにしたいのです。ISDATEを使うのかともおもいましたがうまくいきません。 よろしくお願いします。

  • "/"がある文字列が勝手に日付型になってしまい困っています

    "/"がある文字列が勝手に日付型になってしまい困っています VBAのセルの書式設定について質問があります。 マラソンの順位や個人情報をまとめた表があり、その表がカテゴリ別に半角スペースで区切られているデータをセルごとにまとめています。 順位は"1/3467"のように"個人の順位/参加者"という形式なのですが、カテゴリ毎に分割してセルに文字列を入れると"Jan-67"となっており日付型として認識されてしまいます。 (個人順位が13位以降は"13/3467"といった形式に戻ることから、最初の1位から12位までの間だけだと思われます) そこで、2つほど対策をしてみました。 1,セルの書式設定を変更する  →一通り確認してみましたが、どれも変更できませんでした   ユーザー定義の使い方次第で可能かもしれませんが、分かりませんでした。 2,"/"の位置で分割して、個人順位と参加者に分けて管理する。  →"3467/1/1"という文字列に変換されているため、"/"で分割しても参加人数は認識できますが、   個人順位が日付のような形式になってしまいます。 順位の形式は変えても変えなくても構いませんので、文字列を日付型に変換せずに保管する方法をご存知でしたら、ご教授いただけないでしょうか。 よろしくお願いいたします。

  • EXCELで日付を文字列として取り出すには

    EXCELで日付形式のセルの内容を、そのイメージのまま文字列にするにはどうすれば良いでしょうか。何かうまい方法があれば教えてください。 例えば、2006/01/05 と表示されている日付をそのまま文字列として 取り出したいのです。単にセルの書式設定で文字列に変えただけでは 38722とタイムスタンプの値らしきものに化けてしまうので困っています。

  • エクセルの表示形式(日付→文字)

    エクセルで、2002/12/1のような日付が大量に入っている列があります。 そのセルの表示形式は、現在日付になっているのですが、 文字列に変更する必要が出てきました。 しかし、表示形式を文字列に変更すると、37591のような数字になってしまうセルと、2002/12/1のままのセルが出てきてしまいます。 表示形式を文字列に変えてもすべてのセルが2002/12/1のようになる方法はないでしょうか、よろしくお願いいたします。

  • エクセル 文字列を日付に変更したい

    勘定奉行21を使っています。 総勘定元帳をエクセルにエクスポートして、編集することが多いのですが、日付が文字列になってしまって困っています。これを正しい日付として認識させたいです。 エクセルに出力される日付の例 16 430 16 8 1 161020 など、和暦で表示されていて、月日は一桁の場合は半角スペースが入るようになっています。 スペースが入っているものは文字列として、3番目のようにスペースがないものについては161020という数値として認識されます。 現在行っている方法 A列に上記が入っているとして、B列に数式を入れます。 1)A列を選択し、置換えで半角スペースを"0"(ゼロ)にします。 2)B列に空白の列を挿入します。 3)B列に以下の式を入れ、下までコピーします。 =IF(A6="","",DATEVALUE("H"&MID(A6,1,2)&"/"&MID(A6,3,2)&"/"&MID(A6,5,2))) 4)B列を書式を選択して貼り付けで値にします。 5)A列を削除します。 6)A列の書式設定でユーザー設定「ge.mm.dd」と入れます。 ※B列より右側には15行ほど他のデータが入っています。 ※この日付がA6から下へ続いているのは毎回同じなのですが、出力する時によって全体の行数は増減します。 ※数式のIF部分については、値の貼り付けにした時に、エラーが残ってしまうので入れてあります。 ※H16.01.20の様な表示形式にしたいです。 今のことろは、上記をマクロで記録して、貼り付け用のシートを作って毎回使えば良いか…と考えているのですが、どうもスマートな気がしません。 他に何か良い方法が思いつく方がいらっしゃいましたら、宜しくお願い致します。 ちなみにVBAは分かりません(^^;

  • Excelで文字列で入力された日付のシリアル値への変換

    エクセルで、セルに文字列で例えば"12/26/06"と入力されたもののシリアル値を得る簡単な方法はないでしょうか。 "2006/12/26"と入力されたものであれば、DATEVALUEという関数でシリアル値を得ることは確認しました。 日付同士の計算で日数を計算するために、必要となっています。 よろしくお願いします。

  • EXCEL (VBA)表示形式の変更

    EXCELのセルに"2007/4/30"と入力するとセルの表示形式が自動的に日付になります。 このセルを選択して、表示形式を文字列にすると"39202"となります。 これを"2007/4/30"の表示のまま、文字列に変更することはできるのでしょうか?