アプリ版:「スタンプのみでお礼する」機能のリリースについて

配列のペースト出力結果の書式について、どうも書式が反映されなくて困っております。
dim AllmydataArr as Variant
dim SourceRng as range, TargetRng as range
wbとmbは それぞれのBookのパス先です

Set SourceRng = Wb.Worksheets("sheet5").UsedRange
  AllmydataArr = SourceRng
Set TargetRng = mb.Worksheets("sheet1").Range("A1")

TargetRng.Resize(UBound(AllmydataArr, 1), UBound(AllmydataArr, 2)) = AllmydataArr

と現在このようにResizeとUBoundをつかって配列AllmydataArrのペースト出力結果を出しております。

このままでは値貼り付けで終わってしまい、書式の移動ができておりません。
NumberFormat を使おうにもエラーがでてしまいます。

どのようにVBAを表現すると元のSheetにある書式が反映されるようになるのでしょうか。
教えていただけると幸いです。よろしくお願いいたします

質問者からの補足コメント

  • うーん・・・

    普通のシートのコピーでいいのでは?とも伺いましたが難色を示されましたのでこれを作っております。すいません。

    No.2の回答に寄せられた補足コメントです。 補足日時:2024/02/25 16:23

A 回答 (3件)

No2です。



回答の意味が全く伝わってないみたいですね。
https://learn.microsoft.com/ja-jp/office/vba/api …

もしも、書式の一部だけを反映したいのであれば、その部分だけをコピーしなければならなくなります。
あるいは、一旦全部をコピーしておいてから、不要な書式を削除するか。

コピー元に数式等が設定されていて、値を反映できない場合や式を削除したければ
 Range2.Value = Range1.Value
形式で再度値を転記すれば済みます。


>先方から~~~
依頼を受けて作成しているのならお仕事なのでしょうから、当然、VBAのわかる方がいると思いますので、その方にこのページを見せれば意味を解説してくれるでしょう。
    • good
    • 2
この回答へのお礼

とても有用な情報、ありがとうございます
明日以降にURLを開いて相談してみたいと思います。

お礼日時:2024/02/25 18:11

No1です。



>先方から1回のボタン操作で4回分が自動で済むように言われているので、
>普通のコピペではダメなようです。
意味不明です。

コードを1センテンスにしろとかいう話ではないんでしょ?
そもそも、ご提示のコード自体が1回分の「値のペースト」処理でしかないですし、1センテンスでもないですし・・
4回分行う必要があるのなら、4回コピペすれば済む話だと思いますけれど・・?
この回答への補足あり
    • good
    • 1

こんにちは



まるっとコピペで良いのなら、普通にコピペすれば良いだけでは?

 SourceRng.Copy TargetRng
    • good
    • 1
この回答へのお礼

先方から1回のボタン操作で4回分が自動で済むように言われているので、普通のコピペではダメなようです。
申し訳ございません。

お礼日時:2024/02/25 15:38

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A