重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

Excelで別のソフトから持ってきたデータを貼り付ける際、
手動でペーストを行うと日付データの西暦部分は4桁になっているのですが、
マクロでペーストを行うと西暦がエラー確認つきの2桁表示になってしまいます。
(因みにこのマクロは4桁で表示された手動でのペーストの動きを登録したものです)

書式設定を確認するとyyyy/m/dd表示になっています。
ただ手動でペーストを行った際にはプレビューに2020/01/01等の日付が出るのですが、
マクロで行った方ではプレビューに何も出ません。他の表示設定にしてもプレビューされません。

そして謎なのが、このExcelファイルを別のPCで開きマクロを実行すると西暦が表示は4桁のペーストされます。

つまりはマクロ自体は間違っていないということでしょうか?

どこをいじれば、どう設定すれば西暦が4桁表示のままペーストされるのでしょうか?


どなたかご存知の方ご指導よろしくお願いします。


ペースト位なら手でやれば?というのは聞きたいこととズレてしまうので恐れ入りますが御遠慮下さい。

「マクロでペーストを行うと西暦が2桁表示に」の質問画像

A 回答 (3件)

> そして謎なのが、このExcelファイルを別のPCで開きマクロを実行すると西暦が表示は4桁のペーストされます。



マクロをいつも書いていても、結構、このズレは悩まされますね。

>どこをいじれば、どう設定すれば西暦が4桁表示のままペーストされるのでしょうか?
シート全体で、西暦4桁という方法がありますが、マクロの設定方法では、Cells.NumberFormat ですれば良いはずです。
(昔は、これで良かったけれども、極端なサイズ増になるのだったら、この方法はダメです)
また、PCごとに違うのは、本体の設定の「時刻と言語」の表示方法で、それをなおすことは、VBAでは禁断のマクロだと思います。

私は、個別に、以下のようにしています。

>Excelで別のソフトから持ってきたデータを貼り付ける際、
たとえば、LRow は、コピーされる側の行数, 8 は列の幅
だから、LRow は分からなければ、キメウチで、予め指定した数字でもよいでしょう。

A1から貼り付けの場合。
最初に
Cells(1, 1).Resize(LRow, 8).NumberFormatLocal = "yyyy/mm/dd"
次に貼り付け、なんていう方法を取っています。

「書式を含めて貼り付け」というのは、シートのセルの範囲からの別のシートへの貼り付けだけれども、
いずれに場合でも、基本的には、書式でセルを整地しておいて、その次に値を貼り付けるというのがよいでしょう。
逆だと、どうもうまく行かない時があるようです。
それと、他のソフトウェアからというと、貼り付けが、もうちょっと話が複雑になっているはすですが。他のソフトウェアから、別の成分が入っている可能性がありますので、データをテキスト化してやる必要がありますね。

===================
と、ここまで書いて、アップしようとして気が付きました。
>マクロでペーストを行うと西暦がエラー確認つきの2桁表示になってしまいます。

私の場合、こうはなりません。どこか足りない情報があるのかもしれません。
貼り付けの後のエラー表示で考えられるのは、数字を文字で貼り付けた場合です。
その場合、どうやって相手のソフトウェアから、コピーしてExcelのシートにペーストしているか、明らかにしないといけないのかもしれません。
とにかく、====前までで、試してみてください。
    • good
    • 0

こんにちは



>別のソフトから持ってきたデータを貼り付ける際~~
扱う対象が固定の形式として信頼できるのか不明なので、実行環境によっては結果が異なるようなこともあり得るのではないでしょうか?
実際に、どのような処理を行っているのかわかりませんが、データのチェックを行わず単なるコピペ処理だけを行っているとするなら、データに依存する部分がかなりあることになりそうです。
データが値のみなのか、オブジェクトなのかによっても変わってくると思われます、

データの影響を減らしたいのであれば、、
 1)元データの値や形式をチェック
 2)異なる場合は設定したい形式に変換
 3)セルへ値をセットし、書式を設定する
といった手順で処理をすれば、必ず4桁表示になるものと思います。

もっと簡便にやるなら、コピペで値をセット後にそのセルの書式を(再)設定しておけば宜しいかと。
 対象Cell.NumberFormatLocal = "yyyy/mm/dd"
のような感じです。
    • good
    • 0

書式も含めて貼り付ければ良いと思います。



日付のデフォルトは「短い形式」で表示されたと思うんだ。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!