No.9ベストアンサー
- 回答日時:
大変失礼しました。
回答No8のコード及び添付画像を貼り間違えました。
正しくは以下のコード及び添付画像になります。
■VBAコード
Function 書式判定(a As Range, b As Range) As Variant
Dim para(2, 8) As Variant
Dim tar(2) As Object
Set tar(0) = a
Set tar(1) = b
書式判定 = True
If tar(0).Value <> tar(1).Value Then
書式判定 = False
Exit Function
End If
For i = 1 To Len(tar(0))
For j = 0 To 1
With tar(j).Characters(Start:=i, Length:=1).Font
para(j, 0) = .Color '文字色
para(j, 1) = .Size '大きさ
para(j, 2) = .Italic '斜体
para(j, 3) = .Bold '太字
para(j, 4) = .Strikethrough '取り消し線
para(j, 5) = .Subscript '下付き
para(j, 6) = .Superscript '上付き
para(j, 7) = .Underline '下線
End With
Next j
For j = 0 To UBound(para, 2)
If para(0, j) <> para(1, j) Then
書式判定 = False
Exit Function
End If
Next j
Next i
End Function
No.8
- 回答日時:
追記です。
質問内容ではB列に指示事項を記載してC列に表示とありますが
規範のA列と比較する対象のセルが不明です。
以下のコードでは比較対象の文字列をB列に入力するものとしています。
「書式もふくめて~」とありましたので値が一致しない場合に「err」
ではなく、一致していなければFalseを返すようにしています。
また以下のコードでは書式の判定対象を増やしていますが
文字に対する書式であり、セルに対する書式の判定は行っていません。
(セルの背景色や網掛けパターン、罫線の有無、種類等)
■VBAコード
Function 書式判定(a As Range, b As Range) As Variant
Dim para(2, 8) As Variant
Dim tar(2) As Object
Set tar(0) = a
Set tar(1) = b
書式判定 = True
If tar(0).Value <> tar(1).Value Then
書式判定 = "err"
Exit Function
End If
For i = 1 To Len(tar(0))
For j = 0 To 1
With tar(j).Characters(Start:=i, Length:=1).Font
para(j, 0) = .Color '文字色
para(j, 1) = .Size '大きさ
para(j, 2) = .Italic '斜体
para(j, 3) = .Bold '太字
para(j, 4) = .Strikethrough '取り消し線
para(j, 5) = .Subscript '下付き
para(j, 6) = .Superscript '上付き
para(j, 7) = .Underline '下線
End With
Next j
For j = 0 To UBound(para, 2)
If para(0, j) <> para(1, j) Then
書式判定 = False
Exit Function
End If
Next j
Next i
End Function
No.7
- 回答日時:
回答No.5でmshr1962さんもおっしゃっていますが、
ユーザー定義関数をVBAで作成してみました。
http://officetanaka.net/excel/vba/beginner/10.htm
上記を参考に以下のVBAコードを標準モジュール内に貼り付けてください。
C2セルに「=書式判定(A2,B2)」を入れると
大きさまたは色が違えば「False」、値が違えば「err」、それ以外なら「True」が表示されます。
■以下VBAコード
Function 書式判定(a As Range, b As Range) As Variant
Dim para(2, 2) As Variant
Dim tar(2) As Object
Set tar(0) = a
Set tar(1) = b
書式判定 = True
If tar(0).Value <> tar(1).Value Then
書式判定 = "err"
Exit Function
End If
For i = 1 To Len(tar(0))
For j = 0 To 1
para(j, 0) = tar(j).Characters(Start:=i, Length:=1).Font.ColorIndex
para(j, 1) = tar(j).Characters(Start:=i, Length:=1).Font.Size
Next j
For j = 0 To UBound(para, 2)
If para(0, j) <> para(1, j) Then
書式判定 = False
Exit For
End If
Next j
Next i
End Function
No.6
- 回答日時:
>やはり文字の色など書式の判別は関数では難しいのですかね・・・
他の回答者からCELL関数の提言がありましたが、文字の色や文字の大きさ、背景の色等は対象外です。
CELL("format",A1)については値の表示形式であってセルの書式全般ではありません。
CELL関数の検査の種類("format"等)には他にも検査の種類がありますが、あなたの目的には合わないと思います。
詳しくはCELL関数のヘルプで確認してください。
また、表示形式を変更しても自動再計算では反映されず、手動で再計算を行わないと判定結果が変わらない場合もあります。
ご回答ありがとうございました!関数では実現できないことが分かっただけでもかなり助かりました、ありがとうござました。m(_ _)m
No.5
- 回答日時:
>文字の色など書式の判別は関数では難しいのでしょうか
VBAを利用したユーザー定義関数なら可能ですが。。。
・文字色の色番号を取得する関数
http://veaba.keemoosoft.com/2013/02/550/
No.4
- 回答日時:
=AND(CELL("format",A1)=CELL("format",B1),EXACT(A1,B1))
CELL("format",A1)=CELL("format",B1)で書式のチェック
EXACT(A1,B1)でアルファベットの大文字と小文字の比較も含めた一致・不一致
この二つをANDで比較すれば出来ます。
ご回答ありがとうございます。かなり解決に近づいたと思いましたが、こちらの式でも文字の色や大きさなどを判別して正しい結果を出すことが出来ませんでした・・・やはり文字の色など書式の判別は関数では難しいのでしょうか・・・
No.1
- 回答日時:
こんばんは!
関数によって書式の判断はできないはずです。
C2セルに「TRUE」か「FALSE」を表示させたい!というコトですので、
数式はC2セルにいれます。
C2セルに
=IF(A2=B2,TRUE)
としてみてください。
※ B2セルに入力がない場合何も表示させたくないのであれば
=IF(B2="","",IF(A2=B2,TRUE))
といった感じにしてみてはどうでしょうか?m(_ _)m
ご回答ありがとうございます。やはり文字の色など書式の判別は関数では難しいのですかね・・・いずれにせよありがとうございました。m(_ _)m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
あなたの「必」の書き順を教えてください
ふだん、どういう書き順で「必」を書いていますか? みなさんの色んな書き順を知りたいです。 画像のA~Eを使って教えてください。
-
一回も披露したことのない豆知識
あなたの「一回も披露したことのない豆知識」を教えてください。 「そうなんだね」と「確かに披露する場所ないね」で評価します。
-
【お題】引っかけ問題(締め切り10月27日(日)23時)
【大喜利】 「日本で一番高い山は富士山……ですが!」から始まった、それは当てられるわけ無いだろ!と思ったクイズの問題
-
【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
【お題】 ・買ったばかりの自転車を分解してひと言
-
あなたの習慣について教えてください!!
あなたが習慣だと思って実践しているものを共有してくださいませんか? 筋肉トレーニングでも朝シャワーでも、あなたが習慣だなと思えば何でも構いません
-
Excel countif関数で取り消し線のセルをカウントしないようにしたい countif関数で文
Excel(エクセル)
-
Excel 書式の一致を調べる関数はありますか?
Excel(エクセル)
-
Excelでセル参照したとき、書式も一緒に持ってくるには?
Windows Vista・XP
-
-
4
エクセルの取り消し線を検出するコード
Visual Basic(VBA)
-
5
Excelのカウント関数に関しての質問です。
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
excel関数式の一部を太字にする
-
Excelの条件付き書式を崩された...
-
Excel 条件付書式で土日の左・...
-
Excel 書式を関数で判断。
-
エクセルで重複データを行ごと...
-
VBAでシート書式の自動変換を作...
-
エクセル:一定以上の数値にな...
-
excelで選択範囲の反転をしたい...
-
エクセル 特定の文字だけ白文...
-
条件付き書式 同じなら青 違...
-
エクセルのピボットテーブルの...
-
Excel リスト中の品番と重複が...
-
文字の色を変える関数を探して...
-
Excel 条件付書式で二つの条件...
-
エクセルでのセル書式について
-
Access テキストボックスの文字色
-
エクセルで一行おきに色をつけた後
-
EXCEL 表の書式のみ変更不可(...
-
エクセルの条件付き書式で列に...
-
Excel2003 の条件付き書式、「...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelの条件付き書式を崩された...
-
excel関数式の一部を太字にする
-
Excel 書式を関数で判断。
-
EXCEL 表の書式のみ変更不可(...
-
エクセルのピボットテーブルの...
-
excelで選択範囲の反転をしたい...
-
Excel 条件付書式で土日の左・...
-
エクセルで重複データを行ごと...
-
エクセルで、書式は変えずに連...
-
VBAでシート書式の自動変換を作...
-
条件付き書式が選択できない?!
-
Excel 条件付書式で二つの条件...
-
エクセル:一定以上の数値にな...
-
エクセルで2つのシートで重複し...
-
EXCEL 条件付書式で1つの条件欄...
-
条件付き書式(色変更)は、予...
-
Excel2003 の条件付き書式、「...
-
EXCELにて、整数と小数点を色分...
-
エクセルで1年前の日付になった...
-
条件付き書式の条件に時刻を指...
おすすめ情報