
No.5ベストアンサー
- 回答日時:
> フォントサイズを変更する「列」が複数列の場合はどうしたらよいのでしょうか?
> B~D列の3列のフォントを変更したいと考えています。
B列に計算式を設定し、「順位」を表示しているものとし、その順位により、
フォントサイズを自動的に変更するコードです。
これで、如何でしょうか。
VBAコードの設定方法は、前と同じです。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Rng As Range
Const JuniHani = "B2:B100" ' 順位表示範囲を指定
Application.ScreenUpdating = False
Range(JuniHani).Resize(, 3).Font.Size = 11 ' 一般Fontサイズ
For Each Rng In Range(JuniHani)
If Not IsEmpty(Rng) And IsNumeric(Rng.Value) Then
If Rng.Value <= 5 Then
Rng.Resize(, 3).Font.Size = 24 ' Top5 Fontサイズ
ElseIf Rng.Value <= 10 Then
Rng.Resize(, 3).Font.Size = 18 'Top6~10 Fontサイズ
End If
End If
Next Rng
Application.ScreenUpdating = True
End Sub
No.4
- 回答日時:
No.3ですが、ランキングの基になる数値データに文字列、空白など数値以外を入力した
ときでも、実行エラーに対処し、また、ランクインしない部分のフォントを元へ戻す
ためのコードを修正しました。
10位が同じ数値で複数ある場合の処理をどのようにするかで変わって来ますが、
現コードでは、行が上のもの1件としています。 必要により、変更してください。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Rng As Range
Const CngFSizeCol = "A" ' フォントサイズを変更する「列」を文字列で指定
Const ChkValHani = "B2:B1000" ' 順位を判定する「数値データ範囲」を文字列で指定
Dim N As Integer
Application.ScreenUpdating = False
Range(CngFSizeCol & ":" & CngFSizeCol).Font.Size = 11 ' 一般Fontサイズ
For Each Rng In Range(ChkValHani)
If Not IsEmpty(Rng) And IsNumeric(Rng.Value) Then
If Application.WorksheetFunction. _
Rank(Rng.Value, Range(ChkValHani)) <= 5 Then
N = N + 1
Range(CngFSizeCol & Rng.Row).Font.Size = 24 ' Top5 Fontサイズ
ElseIf Application.WorksheetFunction. _
Rank(Rng.Value, Range(ChkValHani)) <= 10 Then
N = N + 1
Range(CngFSizeCol & Rng.Row).Font.Size = 18 'Top6~10 Fontサイズ
End If
End If
If N = 10 Then Exit For
Next Rng
Application.ScreenUpdating = True
End Sub
No.3
- 回答日時:
> 条件付き書式では対応できないので、VBAで処理ができたらと思っています。
この内容から察すると「条件付き書式」のように無意識で自動的にフォントが変わる
ことを希望していると思います。
次のコードは、ランキングの基になる売上数値等を変更すると、その都度自動的に
フォントサイズも更新されます。いちいちマクロを実行する必要はありません。
一応、コードの設定方法を書いておきますので、ご存知でしたら、読み飛ばしてください。
・使用しているシートのシート名タブを右クリックして「コードの表示」を指定します。
・開いたコードウィンドウに下記コードをコピーして貼り付けます。
・現状に合わせて、3~4、(8)行目の指定内容を修正します。
・Alt+ Q (または、右上隅の×)でウィンドウを閉じ、シートに戻ります。
・メニューから[ツール]-->[マクロ]-->[セキュリティ]で「セキュリティレベル」を
「中」を選択して[OK]します。
・以上で設定完了です。
これで、自動的にフォントサイズが設定されますが、如何でしょうか。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Rng As Range
Const CngFSizeCol = "A" ' フォントサイズを変更する「列」を文字列で指定
Const ChkValHani = "B2:B1000" ' 順位を判定する「数値データ範囲」を文字列で指定
Dim N As Integer
Application.ScreenUpdating = False
For Each Rng In Range(ChkValHani)
Range(CngFSizeCol & Rng.Row).Font.Size = 11 ' Top10 以外Fontサイズ
If Application.WorksheetFunction.Rank(Rng, Range(ChkValHani)) <= 5 Then
N = N + 1
Range(CngFSizeCol & Rng.Row).Font.Size = 24 ' Top5 Fontサイズ
ElseIf Application.WorksheetFunction.Rank(Rng, Range(ChkValHani)) <= 10 Then
N = N + 1
Range(CngFSizeCol & Rng.Row).Font.Size = 18 'Top6~10 Fontサイズ
End If
If N = 10 Then Exit For
Next Rng
Application.ScreenUpdating = True
End Sub
回答ありがとうございます。
早速試してみました。完璧です!!!
ありがとうございます!!!
もう一点質問なのですが、
フォントサイズを変更する「列」が複数列の場合は
どうしたらよいのでしょうか?
B列 | C列 | D列 |
ランキング | 担当者名 | 売上(順位判定数値)
B~D列の3列のフォントを変更したいと考えています。
(1)の方がおっしゃるように、最初の質問できちんと
表の構成を記載すべきですね、二度手間ですみません。
No.2
- 回答日時:
売上高の積もりでA1:A10にランダムの積もりで
4、9、5、3、2、6、7、1、8、10
と入れました。
----
VBEの画面に
Sub test01()
For i = 1 To 10
r = WorksheetFunction.Rank(Cells(i, "A"), Range("A1:A10"))
Cells(i, "B") = r
Select Case r
Case Is >= 6
Cells(i, "A").Font.Size = 16
Case Is >= 1
Cells(i, "A").Font.Size = 24
End Select
Next i
End Sub
を貼りつけて、実行してください。
-----
A1:B10は下記になり
47
92
56
38
29
65
74
110
83
101
A2,A6、A7、A9、A10は24Ptになりました。その他は16Pt。(B列はランク数字を参考に出したものです。)
ご質問者の本番に合わせては、どこをどう変えれば良いかはわかりますよね。
Rank関数のクセについてはご注意を。(同じ値があったときのランク数字の問題など。)
No.1
- 回答日時:
ランキングが記入される位置と、フォントサイズが変更される文字列の位置を書いてもらった方がいいと思います。
また、試されたSampleがあるのならそのコードも紹介してもらえませんでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルで条件付き書式を使わずにセルの文字の色を変える方法を教えて下さい 8 2023/07/28 01:15
- Visual Basic(VBA) VBA初心者です。 VBAで行単位で条件付き書式の色をカウントしたいです。 大量のデータがあるExc 3 2022/06/08 10:00
- Visual Basic(VBA) VBA初心者です。 VBAで行単位で条件付き書式の色をカウントしたいです。 大量のデータがあるExc 3 2022/06/08 10:02
- その他(Microsoft Office) エクセル 条件付き書式 日をまたぐ塗りつぶし 1 2023/01/13 18:00
- Visual Basic(VBA) エクセル VBA 条件によるセル点滅 お詳しい方 ご教授をお願いします。 Excelファイルにて 現 1 2022/11/03 15:53
- Excel(エクセル) 【Excel:条件付き書式 データバー】 正負の軸の位置を変更する方法を教えてください 3 2023/01/08 19:41
- Excel(エクセル) エクセルで”入力シート”の文字書式の変更を”出力シート”で同じ文字書式で印刷したいです。VBA希望 4 2023/04/24 11:07
- Excel(エクセル) エクセルの祝日に色が反映しない 4 2022/05/18 09:58
- Excel(エクセル) 条件付き書式でフォント色を赤に設定しましたが、 2 2023/07/29 14:17
- その他(Microsoft Office) ランクイコール関数について教えてください。 例えば A、B組があったとして、1、2、3班に分かれてい 2 2023/07/05 21:33
このQ&Aを見た人はこんなQ&Aも見ています
-
【お題】大変な警告
【大喜利】「今このパソコンは大変危険な状態です」という警告メッセージを無視してパソコンを開いたら、こんなことが起こった
-
歳とったな〜〜と思ったことは?
歳とったな〜〜〜、老いたな〜〜と思った具体的な瞬間はありますか?
-
コンビニでおにぎりを買うときのスタメンはどの具?
コンビニでおにぎりを買うとき、何の具材を選ぶことが多いですか?
-
人生でいちばんスベッた瞬間
誰しも、笑いをとろうとして失敗した経験があると思います。
-
泣きながら食べたご飯の思い出
泣きながら食べたご飯の思い出を教えてください。
-
セルの書式設定のフォントやサイズの設定はできないの
Excel(エクセル)
-
エクセル関数について(フォントサイズ変更)
Excel(エクセル)
-
excel:条件付きでセルの文字サイズを変える方法は?
Excel(エクセル)
-
-
4
VBAで条件によりフォントサイズを自動で変更したい2
Excel(エクセル)
-
5
関数で抽出したセルの一部の文字を変更したい
Excel(エクセル)
-
6
Excelで条件付き書式によるフォント設定
Excel(エクセル)
-
7
Excel2007条件付書式でフォントを変更したい
その他(Microsoft Office)
-
8
エクセルでセルのフォントサイズを取得する関数?
Excel(エクセル)
-
9
Excelでセル参照したとき、書式も一緒に持ってくるには?
Windows Vista・XP
-
10
EXCELで2つの数値のうち大きい方を採択する数式
Excel(エクセル)
-
11
VBAで条件によりフォントサイズを自動で変更したい
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ワードやエクセルで文字を縦長...
-
箇条書きの数字の一部の色を変...
-
差し込み印刷された時の文字の...
-
ワードで英単語を入力すると文...
-
メッセージボックスに表示する...
-
ワードで、文字の大きさを変え...
-
Excelエクセル ヘッダの文字サ...
-
エクセルのテキストボックス内...
-
セルの条件によってフォントサ...
-
急に文字が細くて、見づらくな...
-
パソコンの表示フォントが突然...
-
excelで文字幅(倍率)を指定す...
-
A4サイズの用紙いっぱいに1文字...
-
WORDで、一行当たりの文字数を4...
-
ポップアップ表示の文字サイズ...
-
縦書きで途中から2行にする場合...
-
ワードの原稿用紙、文字ずれに...
-
アクセスのレポートで文字縮小...
-
エクセル表の行がメール添付し...
-
Excel2007でハイパーリンクを設...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ワードで英単語を入力すると文...
-
差し込み印刷された時の文字の...
-
ワードやエクセルで文字を縦長...
-
メッセージボックスに表示する...
-
箇条書きの数字の一部の色を変...
-
Wordについて
-
パソコンの表示フォントが突然...
-
ワードで、文字の大きさを変え...
-
WORDで、一行当たりの文字数を4...
-
ワードでA4 1行40字×30行...
-
Excel2007でハイパーリンクを設...
-
エクセル表の行がメール添付し...
-
急に文字が細くて、見づらくな...
-
ワードの原稿用紙、文字ずれに...
-
Chem Drawの使い方
-
excelで文字幅(倍率)を指定す...
-
A4サイズの用紙いっぱいに1文字...
-
ワードで筆のような文字にしたい
-
Excelエクセル ヘッダの文字サ...
-
縦書きで途中から2行にする場合...
おすすめ情報