すべてのカテゴリ » インターネット・パソコン » ソフトウェア » 使い方・不具合

質問

終了

excelでの質問です。現在、エクセルにてサイトURLの整理を行っているのですがどうしてもできなかったのでお助け願います。

A列にURLを順に記載していく際に、もし、A列に同じURLがあった際は赤色とかでセルを塗りつぶす指定をしたいとおもってるのですが、どのようにすればいいのでしょうか。

一度入力したURL(http://******.***/)があった際は警告をだすみたいな感じです。

バージョンは2003でお願いします。
お手数ですがよろしくお願いします。

  • 質問者:EXCEL
  • 質問日時:2009-06-16 19:00:48
  • 0

並び替え:

AセルにURL書き込みとし Bセルで計算&結果表示ではダメですか?

Bセルの関数 B1は何も書かず B2に⇒ =IF(COUNTIF(A$1:A2,A2)>1,"×","")
B2から使いたい行数だけ関数を各セルに下に引っ張り
そしてB列を指定し〔書式〕⇒〔条件付書式〕で
条件を〔セルの値〕、〔次の値に等しい〕、〔="×"〕とし すぐ下の〔書式〕を赤色に指定
これで ×表示とセルの赤色塗りつぶしが出来ます。

あまり詳しくないので良い方法が浮かびませんが…
条件付書式を上手く使えば何か良い方法があるかもですね^^

  • 回答者:匿名 (質問から3日後)
  • 0
この回答の満足度
  

http://www.relief.jp/itnote/archives/000798.php

上記手順でできます。

また、「「=COUNTIF(A:A,A1)>1」の部分の、A1が重複チェックする開始位置なので、必要な時にだけ変更すればできると思います。

# エクセルをもっていないので、確認はしていませんが、セルを塗りつぶす機能と重複をチェックすることはできます。警告は出しませんが、セルの色が変化するので、条件を満たすと思います。

しばらくパソコンやっていますので、できなければご連絡お願いします。

以上です。

  • 回答者:コゼニゲバ (質問から5時間後)
  • 1
この回答の満足度
  

マクロを使わないと出来ないと思います。
とりあえず作ってみたので、試してみてください。

メニューから[ツール]-[マクロ]-[Visual Basic Editor]を選択して、作業を行うシートに以下のマクロを追加してください。

' ここから
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Application.ScreenUpdating = False

For Each targetRange In Target
Dim cIndex As Integer
cIndex = -4142

If (Len(targetRange.Value) > 0) Then
For i = 1 To targetRange.Row - 1 Step 1
If (Cells(i, targetRange.Column).Value = targetRange.Value) Then
cIndex = 3
Exit For
End If
Next
End If

Target.Interior.ColorIndex = cIndex
Next

Application.ScreenUpdating = True
End Sub
' ここまで


編集したセルよりも前の行に同じデータがあった場合、編集したセルの色が赤くなります。
処理時間の関係上、編集しているセルより下の行は確認しません。

===補足===
「A列にURLを順に記載していく際に・・・セルを塗りつぶす」という事から、
 セルにデータを入力したタイミングで重複チェックを行い、そのセルを赤くする
方法を模索していると読み取りました。
この条件を満たすには、マクロを使わないとできません。

別のセルを利用しても良いのであれば、関数と条件付き書式でやれると思いますが、作成の手間を考えるとマクロの方が圧倒的に楽です。

  • 回答者:hon (質問から3時間後)
  • 0
この回答の満足度
  
参考になりました。回答ありがとうございました。
お礼コメント

ありがとうございます。
マクロ以外ではできないのでしょうか。

たとえばA列のすべのセルを文字列として扱い同じ文字列が存在した場合には赤色表示とかです。

よろしくお願いします。

関連する質問・相談

Sooda!からのお知らせ

一覧を見る