Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


10733 / 13644 ツリー ←次へ | 前へ→

【20133】シートから全角文字をサーチしてあればセ... 月の輪熊 04/11/29(月) 14:33 質問[未読]
【20134】Re:シートから全角文字をサーチしてあれば... ichinose 04/11/29(月) 14:52 回答[未読]
【20137】Re:シートから全角文字をサーチしてあれ... 月の輪熊 04/11/29(月) 15:30 お礼[未読]
【20146】Re:シートから全角文字をサーチしてあれ... ichinose 04/11/29(月) 17:19 発言[未読]
【20177】Re:シートから全角文字をサーチしてあれ... 月の輪熊 04/11/30(火) 13:49 発言[未読]
【20136】Re:シートから全角文字をサーチしてあれば... kazu 04/11/29(月) 15:22 発言[未読]
【20138】Re:シートから全角文字をサーチしてあれ... 月の輪熊 04/11/29(月) 15:32 お礼[未読]
【20140】Re:シートから全角文字をサーチしてあれ... 月の輪熊 04/11/29(月) 15:56 お礼[未読]

【20133】シートから全角文字をサーチしてあればセ...
質問  月の輪熊  - 04/11/29(月) 14:33 -

引用なし
パスワード
   初めて質問させて頂きます。宜しくお願い致します。

シートの中に入力されるデータで、全角文字と半角文字が混在するセルが
あった場合、該当セルに色を付ける(もしくはフォントを変える)ような
方法はないでしょうか?

全角文字を半角文字に変える、セルに色を付ける、文字フォントを変える
という単独機能を実現する方法は見つけたのですが、この組み合わせで
実現させる方法が解らなくて困っています。

どうか、宜しくお願いいたします。

【20134】Re:シートから全角文字をサーチしてあれ...
回答  ichinose  - 04/11/29(月) 14:52 -

引用なし
パスワード
   ▼月の輪熊 さん:
こんにちは。

>初めて質問させて頂きます。宜しくお願い致します。
>
>シートの中に入力されるデータで、全角文字と半角文字が混在するセルが
>あった場合、該当セルに色を付ける(もしくはフォントを変える)ような
>方法はないでしょうか?
条件付書式で可能かと思います。

セルA1〜C3の範囲で行う場合
・セルA1〜C3を選択して、「書式」---「条件付書式」で
 「条件付書式設定」ダイアログを表示させます。

・「セルの値が」と表示されているコンボボックスを「数式が」に変更します。

・数式として「=IF(OR(LEN(A1)=LENB(A1),LEN(A1)*2=LENB(A1)),FALSE,TRUE)」
 を指定して下さい。

・「書式」ボタンをクリックし、数式が真の場合の書式を設定します。

・「書式」を設定後、OKボタンをクリックしてます。

こんな操作で可能かと思いますが、確認して下さい。

【20136】Re:シートから全角文字をサーチしてあれ...
発言  kazu  - 04/11/29(月) 15:22 -

引用なし
パスワード
   ▼月の輪熊 さん:
>初めて質問させて頂きます。宜しくお願い致します。
>
>シートの中に入力されるデータで、全角文字と半角文字が混在するセルが
>あった場合、該当セルに色を付ける(もしくはフォントを変える)ような
>方法はないでしょうか?
>
>全角文字を半角文字に変える、セルに色を付ける、文字フォントを変える
>という単独機能を実現する方法は見つけたのですが、この組み合わせで
>実現させる方法が解らなくて困っています。
>
>どうか、宜しくお願いいたします。


こんな感じでどうでしょうか?


Sub TEST()
  'For Each CEL In ActiveSheet.Cellsでも可能ですが、
  '実用的ではない為各列の最終行迄処理をする様にしています。
  '半角 or 全角 のみでないセルは黄色に塗られます。
  With ActiveSheet
  For I = 1 To 256
    R = .Cells(65536, I).End(xlUp).Row
    For J = 1 To R Step 1
      If .Cells(J, I).Value <> "" Then
        '対象セルの値
        A = .Cells(J, I).Value
        '対象セルの値を全て全角に変換した値
        B = StrConv(.Cells(J, I).Value, vbWide)
        '対象セルの値を全て半角に変換した値
        C = StrConv(.Cells(J, I).Value, vbNarrow)
        'Not (A = B Or A = C) ← A <> B And A <> C
        'どちらかでも等しければ全て全角又は全て半角
        If A <> B And A <> C Then
          'セルを黄色く塗りつぶす処理
          With .Cells(J, I).Interior
            .ColorIndex = 6
            .Pattern = xlSolid
          End With
        End If
      End If
    Next
  Next
  End With
End Sub

【20137】Re:シートから全角文字をサーチしてあれ...
お礼  月の輪熊  - 04/11/29(月) 15:30 -

引用なし
パスワード
   ichinose 様
早速のお返事、誠に有難うございます。

教えて頂いた通りに行ってみたのですが、どうも上手く行かないようです。
操作方法に何か足りないところがあるのかもしれません。
もう少し色々とやってみます。
因みに使用バージョンはExcel2002 SP-1ですが、関係ありますでしょうか?

全角文字という事で、頭から「文字列」と決めてかかっていたのですが、
「条件付書式設定で数式を使う」という発想には、正に目からウロコが
落ちる状況でした。どうも有難うございました。

【20138】Re:シートから全角文字をサーチしてあれ...
お礼  月の輪熊  - 04/11/29(月) 15:32 -

引用なし
パスワード
   kazu 様
早速のお返事、有難うございました。

早速試してみます。結果はまた改めてご報告いたします。

【20140】Re:シートから全角文字をサーチしてあれ...
お礼  月の輪熊  - 04/11/29(月) 15:56 -

引用なし
パスワード
   kazu 様

見事に成功いたしました。
こんなに早く解決して頂いて、本当に有難うございました。

心よりお礼申し上げます。

【20146】Re:シートから全角文字をサーチしてあれ...
発言  ichinose  - 04/11/29(月) 17:19 -

引用なし
パスワード
   ▼月の輪熊 さん:
こんばんは。
既に解決したご様子ですが・・・。
条件付書式でも可能かと思います。


>早速のお返事、誠に有難うございます。
>
>教えて頂いた通りに行ってみたのですが、どうも上手く行かないようです。
>操作方法に何か足りないところがあるのかもしれません。

説明不足なんてしょうか?

>もう少し色々とやってみます。
>因みに使用バージョンはExcel2002 SP-1ですが、関係ありますでしょうか?
SP-1では確認していませんが、SP-3(だったと思う)ではOKでしたよ!!

>
>全角文字という事で、頭から「文字列」と決めてかかっていたのですが、
>「条件付書式設定で数式を使う」という発想には、正に目からウロコが
>落ちる状況でした。どうも有難うございました。

取り合えず、条件付書式の設定をVBAでやりましょうか・・。

査定したいセル範囲を選択後(例えばA1〜C3)、以下のマクロを
実行して下さい。

'======================================================
Sub Macro1()
  With Selection
   .FormatConditions.Delete
   .FormatConditions.Add Type:=xlExpression, Formula1:= _
    "=IF(OR(LEN(rc)=LENB(rc),LEN(rc)*2=LENB(rc)),FALSE,TRUE)"
   .FormatConditions(1).Interior.ColorIndex = 8
   End With
End Sub

上記のコードは、半角と全角が混在しているセルが水色にする
条件付書式を設定しています。

まっ、解決したみたいなので興味があったら確認してみて下さい。

【20177】Re:シートから全角文字をサーチしてあれ...
発言  月の輪熊  - 04/11/30(火) 13:49 -

引用なし
パスワード
   ichinose 様
お返事遅れて申し訳ありませんでした。
お気に掛けて頂いて誠に恐縮です。

あれからやってみたのですが、先にお教え頂いた方法でちゃんと動いておりました。
テスト担当者が仕様を勘違いしていて、誤ったデータによる処理結果が
想定結果と違うので、「おかしい」という報告をしていた事が判明いたしました。

チェックの甘さから誤報告をいたしまして、多大なるご迷惑をおかけいたしました段、重ねてお詫びいたします。

10733 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free