いちばん失敗した人決定戦

シートAに在る1行(B2:D2)を、
別のシートB(F2:H2)にカット&ペーストしたいのですが、
以下の条件を付けたいのです。

①シートAからは「cut」
②シートBへは色、内容だけの貼り付け
  →数式、条件付き書式は引き継がない

ここで課題ですが、
色ですが、条件付き書式によって付いています。
条件付き書式を残さないので矛盾するかと。
ということで質問させていただいています。
宜しくお願いします。

A 回答 (4件)

こんにちは



セルの値の転記に関しては、既出の通り
 Range2.Value = Range1.Value
の方法で可能です。

>displyaformatはサポートされていませんでした。
その場合は、条件付き書式で書式が変わっている結果を直接取得するのは難しいです。
代替方法としては、「条件付き書式」そのものを調べて、条件が満たされていればそちらの書式を、そうでない場合はセルの書式を設定するようにすれば不可能ではないと考えられます。

全ての「条件設定方法」や「書式」の各項目にも対応できるようなマクロだとかなり面倒なものになってしまいそうですが、想像するところ、設定方法や書式は限られているものと思いますので、その部分だけチェックするような仕組みにすれば、対応は可能ではないでしょうか?

例えば、条件の設定が Formula に限定できて、書式設定が Interior.Color(あるいはFont.Color) に限定できるのなら、チェック対象を決め打ちできますので、
 1)セルの FormatConditions を調べる
 2)設定されている場合、条件式を取得して評価
   2-1)条件式がTrueなら条件付き書式の色を採用
   2-2)条件式がFalseならセルの色を採用
 3)設定されていなければ、セルの色を採用
といった手順で可能ではないかと思います。

セルに対して複数の条件付き書式が設定されていたり、多様な条件設定方法になっていたりすると、それなりに面倒になるとは思いますが、考え方として同様にしてゆけば不可能ではないと想像します。
    • good
    • 0
この回答へのお礼

ありがとうございました。
考え方、了解です。

こまごまとまではやらなくて済むと思います。
難しくないので、
コピー先で同じように条件付き書式の設定をやる方向で考えてみます。

お世話になりました。

お礼日時:2021/12/28 16:36

No.2の者です。



>1番の方が書かれている条件式の中でif関数でinteriorcolorindexが
使えるのかを調べています。
条件付き書式で設定した、関数でしょうか? それをマクロの中でIF関数
などで設定して、色を塗ったりするしかないかと。


VBAの色の指定は、色々とあって、非常に解り難いと私自身感じています。

RGBの設定
http://officetanaka.net/excel/vba/graph/25.htm
指定が少し面倒ですが、確実に指定の色を設定できます。

interior.colorindex
https://officek.net/excelvba/v-range/vr-format/v …
56色まで、パレットの色は、PCのExcelの設定で変わるので、変更されて
いると、違う色が表示される。 複数のPCで使用する際は、要注意。

ColorプロパティとColorIndexプロパティの違い
https://vbabeginner.net/difference-between-color …
    • good
    • 0
この回答へのお礼

何回もありがとうございます。
その後いろいろやってみましたが、
4番の方に似ている方法としようという方向です。

コピー先で同じように条件付き書式を設定する。
コピー元は教えのようにクリアしておく。
(そもそも無くなっていますが)

この方向で考えてみます。
折角いろいろと色の違いについて教えて頂きましたが、
今回は単純に増えていれば赤く、程度の色です。
なんとかなるかなと思っています。

お世話になりました。

お礼日時:2021/12/28 16:34

こんにちは。



検索した記事ですが、下記が参考になるでしょうか?
https://daitaideit.com/vba-displayformat/

①のカットとは、①の書式はクリアする?
もしそうなら②を実施後にセルをクリアする。
②の色は上記記事を参考するとして、内容とはセル表示されている結果(値)をコピーなら、下記でできるかと。
WorkSheets("シートB").Range("F2:H2").Value=WorkSheets("シートA").Range("B2:D2").Value
    • good
    • 0
この回答へのお礼

早速ありがとうございました。
色以外の件はお教えの通りで出来ました。

肝心な色については、
私のexcelが2003にため、
displyaformatはサポートされていませんでした。

1番の方が書かれている
条件式の中でif関数でinteriorcolorindexが使えるのかを
調べています。

お礼日時:2021/12/28 12:45

テストしてないですが、


条件付き書式の条件をIF文にして、Interior.Colorで色を付けるでとりあえずできそうな気がしました。
    • good
    • 0
この回答へのお礼

早速ありがとうございました。
回答の内容が理解できていません。
書けばよかったのですが、
私のexcelは2003でバージョンが古いです。

2番の方の回答に在った、
displayformatなら出来そうなのですが、
私の環境では使えないため不可です。

excel2003でif関数を使ってできそうなら、
是非具体的に教えていただきたいのですが。
宜しくお願い致します。

お礼日時:2021/12/28 12:42

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