[[20151217190635]] 『条件付き書式のexport』(はち) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『条件付き書式のexport』(はち)

こんにちは。エクセルを勉強中のはちと申します。
仕事で、条件付き書式がたくさん入っているエクセルを確認しているのですが、いろんな人がいろんなふうにアレンジしたシートになってしまい、条件付き書式を1つ1つ確認するのに時間がかかってなかなか進みません。。。
すべてのシートのすべての条件付き書式(どんな数式でどんな書式が返ってくるか)をエクスポートする方法はないでしょうか?
ご教示の程何卒宜しくお願い致します。

< 使用 Excel:Excel2007、使用 OS:Windows7 >


 >>エクスポートする方法

 エクスポートとは具体的に、どんな結果を想定していますか?
 ブック内の各シートに設定してある条件付書式の内容を、その設定してある場所とともに
 網羅的にリスト化したいということでしょうか?

 シート上の条件付書式が設定されているセルを把握するということだけであれば
 ホームタブ、検索と選択で、条件を選択してジャンプ、条件付書式を選んでOK。
 これで、該当のセルがすべて選択されますから、1つずつ確認。
 これが基本だと思います。

 それが面倒だからリスティングしたいということであればマクロでしょうね。
 ただ、条件付書式の設定条件自体がバリエーション豊富ですからリスト化のための編集ロジックも
 (難しくはないですが)面倒になりますけど。

(β) 2015/12/17(木) 19:23


ご返信ありがとうございます。
基本的に紙面上でチェックをしないといけない部署なので、今はひとつひとつ条件付き書式をプリントスクリーンで貼り付け、打ち出して確認をしています。
出来ればリスト化したいと考えています。

マクロは本当に初心者なのですが(〜入門、という本とHPで勉強し始めたところです。。。)面倒でも構いませんので勉強しますので、教えていただけるとありがたいです。

具体的には、例えば、
・0.2≧n>0.1...背景:赤色
・0.3≧n>0.2...背景:黄色
...
みたいな条件付き書式が延々と続いている感じです。
それほど複雑な条件付き書式はありませんが、これらの情報をどうすれば取得できるのかわからず困っています。。。。
(はち) 2015/12/17(木) 19:33


 コメントしたように、すべてを汎用的に網羅した形でのリスト化は、エクセルが持つ、膨大な条件付書式制御ロジックを
 「一部想像も」しながら、コード化するということになり、面倒、少なくとも βは、書き上げる気力がわきません。

 まぁ、数式が という条件に限定、書式も背景色のみ ということなら、書いてみてもいいかなとも思いますけど。

 それより、市販ソフトやフリーソフトをさがしてみてはいかが?
 内容的には見ていないので何とも言えませんが、以下は、機能の一部として
 「解析レポート シートの数式/条件付書式/入力規則/コメントを一覧形式で書き出します。」
 と説明がありました。

http://www.vector.co.jp/soft/win95/business/se319968.html

(β) 2015/12/17(木) 20:38


ご返信ありがとうございます。

また、ご提案ありがとうございました。
使っている会社のPCには、セキュリティ上、新しいソフトをインストールすることが出来ません。。。

やはり、一つ一つをプリスクで印刷するしか方法はないのでしょうか。。。

ちなみに、条件付き書式のポップアップをもう少し横長や縦長にする方法はご存じありませんか?
(1度の数式が1画面に収まらないので、カーソルを移動してはプリスク、を繰り返さなくてはならず、その過程でミスしていないかがすごく不安なのです。。。)
(はち) 2015/12/17(木) 20:45


ジャンプ機能で条件付き書式をすべて自動選択した状態で、
「ルールの管理」を押すと、一覧表が出てきますけど、
これでは不足なんでしょうか。
これがMicrosoftが用意している、一覧機能に関する回答のはずですが。

範囲や内容が表示され、必要なら、各設定の内容を精査できます。
この程度で妥協するのが大人というものでしょう。

(まあ、他人がしてくれると思っているからこそ、
 暢気にリクエストできるわけだけど、手間はかかりそうですよ。
 色々な条件をもとに、日本語に変換だなんて。
 必要なら自分でやるべきでしょう)
(γ) 2015/12/17(木) 21:53


 条件付き書式の中身を確認しないといけない理由って何でしょう?
 全部削除しちゃって、新しく設定しなおすとかはダメなんですか?

 それとも、色とかを残したままコピーしたいとかなのかな。
(コナミ) 2015/12/18(金) 12:23

セル単位で指定された情報を得るならば、例えば Activesheet.Cells.FormatConditions プロパティ以下を調べれば良さそうです。
しかし、この中にはセル範囲情報を見つけることができませんでした。

別案として、条件付き書式を、Excelの外で確認する方法なぞ。

まず、ブックを保存して閉じます。
ブックを壊さないよう、ファイルコピーしておきます。
コピーしたファイルの拡張子を「.zip」に変えます。
zipに変えたファイルの中を見ます。
\xl\worksheets\sheet1.xml 等、シート毎のXMLファイルがあるので、これをブラウザで開きます。

<conditionalFormatting sqref="A1:A6"> のように、書式設定した範囲が記述されています。
その下に続くのが、条件になります。
例えば、type="expression" となっていれば、数式使用であり、<formula>に数式が書かれているはず。
type="cellIs" operator="between" ならば、指定の値を含むセルであり、範囲指定です。

指定の仕方が沢山あるので、全てに対応したマクロを書くのは、もの凄く面倒です。
難しくはない(難しいと思うなら、諦めたほうが良いです)ので、ご自身で必要な情報だけ抜き出してみてはいかがでしょうか。
(???) 2015/12/18(金) 13:45


 >この中にはセル範囲情報を見つけることができませんでした。

 FormatConditionの AppliesToプロパティ(Rangeオブジェクトを取得)で分かります。

(半平太) 2015/12/18(金) 13:58


おぉ、Application.Cells.FormatConditions(1).AppliesTo.Address とかで範囲情報取れますね。
ならば、使われているパターンさえ絞ってもらえば、マクロで作れるかなぁ。面倒ですけど。
(???) 2015/12/18(金) 15:09

とりあえず、手抜き例。

 Sub test()
    Dim i As Long
    Dim j As Long
    Dim iR As Long

    Cells.ClearContents
    Range("A1:I1") = Array("シート名", "範囲", "文字色", "太字", "斜体", "背景色", "タイプ", "条件", "式1", "式2")

    iR = 1

    For i = 1 To Sheets.Count
        For j = 1 To Sheets(i).Cells.FormatConditions.Count
            With Sheets(i).Cells.FormatConditions.Item(j)
                iR = iR + 1
                Cells(iR, "A").Value = Sheets(i).Name
                Cells(iR, "B").Value = .AppliesTo.Address
                Cells(iR, "C").Value = "'" & Right("000000" & Hex(.Font.Color), 6)
                Cells(iR, "D").Value = .Font.Bold
                Cells(iR, "E").Value = .Font.Italic
                Cells(iR, "F").Value = "'" & Right("000000" & Hex(.Interior.Color), 6)
                Cells(iR, "G").Value = .Type
                On Error Resume Next
                Cells(iR, "H").Value = Array("", "xlBetween", "xlNotBetween", "xlEqual", "xlNotEqual", "xlGreater", "xlLess", "xlGreaterEqual", "xlLessEqual")(.Operator)
                Cells(iR, "I").Value = "'" & .Formula1
                Cells(iR, "J").Value = "'" & .Formula2
                On Error GoTo 0
            End With
        Next j
    Next i
 End Sub
(???) 2015/12/18(金) 15:46
(16:29 .Operator追加)

皆さま、ご連絡ありがとうございます!
返信が遅れまして申し訳ありませんでした。

実は、会社のQC部門におりまして、報告データとして上がってくるすべてのエクセルを、数式や書式、グラフが正しいか確認しなくてはなりません。また、それを、確認したという証拠として、証拠となるものを印字して署名し、保管しなくてはならないというルールになっておりまして。。。
以前は複雑な書式を使う方が少なかったので、プリスク→印字でなんとかなっていたのですが、このところ、条件付き書式が多用されたエクセルを活用する方が増えたため、その1つ1つを印字して署名をする際にミスが頻発するようになり、なんとかならないか。。。とマクロの勉強を始めた次第です。(セルの取り違えや、数式全体を表示する際に2〜3枚の確認が必要になるなど...)

お恥ずかしい限りなのですが、皆さまのお力をお借り出来ればと思い、ここに書き込ませていただいた次第です。
???さんの書き込みを拝見し、こちらを参考に、何とかチャレンジ出来そうな気がしてきました。
本当にありがとうございます。
また躓いてしまったら質問させていただくかもしれませんが、何卒ご容赦いただけますと幸いです。
(はち) 2015/12/19(土) 08:00


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.