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

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

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

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

Q&A

2回答

19895閲覧

VBAでの日付のコピー・貼り付けついて

Ruiz

総合スコア10

VBA

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

0グッド

1クリップ

投稿2018/11/01 09:25

前提・実現したいこと

マクロを利用して、CSVファイルからエクセルファイルへ、データをコピーさせようとしています。

発生している問題

日付が入っているセルをコピーした際に、
コピー前は 2018/10/30
となっていたものが、
コピー後は 18-10-30
と表示されてしまいます。
表示を変えないようコピーする方法か、コピー前の表示形式に戻す操作をお教えいただきたいです。

該当のソースコード(抜粋しています)

Workbooks.Open Filename:="「元データ」.csv"
Windows("「元データ」").Activate
Range("A2:Q2500").Select
Selection.Copy
Windows("「コピー先」.xlsx").Activate
Range("A2").Select
ActiveSheet.Paste
Application.CutCopyMode = False

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

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

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

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

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

guest

回答2

0

質問を整理すると、
表示形式は、
コピー元:18-10-30
コピー先:2018/10/30
コピーするとコピー先の表示形式が18-10-30になる。
ということでよいでしょうか?
という前提で考えるとコピー元の表示形式も含めてコピーしてしまっているので、値のみコピーすればよいのではないでしょうか。

VBA

1Range("A2").Select 2ActiveSheet.Paste 34Range("A2").PasteSpecial Paste:=xlPasteValues

投稿2018/11/01 23:47

ttyp03

総合スコア16998

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

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

0

該当の列のRangeオブジェクトのNumberFormatLocalプロパティを設定するのが良いと思います。
どちらかというと「コピー前の表示形式に戻す」の方に近い操作です。

http://officetanaka.net/excel/vba/cell/cell08.htm

投稿2018/11/01 10:47

morinatsu

総合スコア395

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問