[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『シート名の一部を取得してセルの値を太文字にする』(なっち)
お世話になってます。
シートが3つ、シート名は「Sheet001」「Sheet002」「Sheet003」です。
全てのシートの中のセルに、文字列で「001」」「002」「003」がランダムの位置に記入されています。(位置は不特定)
その記入された数値の右隣には全て「A」と記入されています。
シート名の数値が「Sheet001」の場合、シートの中から001を見つけて
「A」の文字を標準→太文字に変更したいです。
Sheet001 の場合
001 A ←これを太文字にする
002 A
003 A
Sheet003 の場合
001 A
002 A
003 A ←これを太文字にする
詳しい方、よろしくおねがいします。
< 使用 Excel:Excel2013、使用 OS:WindowsXP >
一例です。 Sub sample() Dim i As Long, j As Long, f As Range Dim s1 As String, s2 As String, ad As String For i = 1 To 3 'シート数 s1 = "00" & i & " A" '検索対象文字列 s2 = "A" '変更対象文字列 Set f = Sheets("Sheet00" & i).Cells.Find(s1, , , 1) If Not f Is Nothing Then ad = f.Address Do j = InStr(f, s2) If j Then f.Characters(j, Len(s2)).Font.FontStyle = "太字" Set f = Sheets("Sheet00" & i).Cells.FindNext(f) Loop Until ad = f.Address End If Next i End Sub (Jera) 2014/06/11(水) 16:06
標準機能の例で。
シートのどこかにシート名を置いて(例えばAA1) B1をクリックしてから対象範囲(B:Z)を選択し、条件付書式の数式で =RIGHT($AA$1,3)=A1 で書式で太字でどうでしょうか。
AA1 には =RIGHT(CELL("filename",A2),LEN(CELL("filename",A2))-FIND("]",CELL("filename",A2))) などでシート名表示はできます。 (Mook) 2014/06/11(水) 16:14
やってみましたが、「インデックスが有効範囲にありません。(Error 9)」と
エラーになってしまいうまくいきませんでした。。
それと「A」ですが、セルに記入されているのは「A」とは限らず、右隣のセルに
入力されている文字を太文字にしたいです。「A」はサンプル文字です。
Mookさん、ありがとうございます。
試してみます。。
(なっち) 2014/06/11(水) 16:26
あぁ、同一セルに"001 A"と入力されていて、セルの一部だけ太字にしたいのかと思ってました。
※一応修正案を出しておきます。 インデックスエラーは実際のシート名が"Sheet001"のようになっていないのでしょうね。 Mookさんの案で解決されたようなので、これでも大丈夫かな… Sub sample() Dim i As Long, f As Range Dim s As String, ad As String For i = 1 To Worksheets.Count s = Right$(Sheets(i).Name, 3) '検索対象文字列 Set f = Sheets(i).Cells.Find(s, , , 1) If Not f Is Nothing Then ad = f.Address Do f.Offset(, 1).Font.FontStyle = "太字" Set f = Sheets(i).Cells.FindNext(f) Loop Until ad = f.Address End If Next i End Sub (Jera) 2014/06/11(水) 16:46
修正案確認しました、出来ました!
ありがとうございました!
また教えてくださいね。。
(なっち) 2014/06/12(木) 07:30
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.