- 締切済み
Excelで条件付き書式によるフォント設定
A B 商品 在庫数 りんご 18 いちご 50 バナナ 欠品 というような表で、 文字列ならMSPゴシック、サイズ10に。 数値ならHG丸ゴシックM-PRO、サイズ13に設定したいのですが、 条件付き書式ではフォントの設定は出来ないんですね。 色々調べて、VBAなら実現可能だということまではわかったのですが、 VBAに関してはネット上で拾ってきたすでに書かれたものを少しカスタマイズする程度の本当に微妙な知識しかなく、 いくら調べても希望に合うものが見つかりません(条件付きを4つ以上…なら沢山あったので、 それを元に少しやってみましたが出来ませんでした/苦笑) 職場からは書き込みが出来ず、休憩を利用しての携帯からの投稿なため 自分で書いたソースを提示して添削、というのが出来ない状況で大変申し訳ないのですが、 よろしければお力を貸していただければ幸いです。お願いします。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17069)
経験なくてわからないだろうが、この課題には2通りの場合がある。 その区別が書いてない。 (1)既にデータは入れ終わっていて、条件によってフォントの種類を変える。多少データが増えてもVBAの実行を再度行ってよいーー>バッチ処理 (2)データが増えた都度、フォントの種類を即座に変えたいーー>イベント処理。 (1)は最下行番号を割り出す。 先頭から最下行まで、数値(IsNumeric)であればHG丸ゴシックM-PRO、それ以外だと(Font.Nameを)MSPゴシックに設定する。 それを最下行まで全行について繰り返す。 これぐらいコードはわかるでしょう。 (2)イベントの場合は、Changeイベントを使う。 Target.Columnが対象列(B列なら2)かどうか判別する。それ以外は、スキップする。 後は、数値(IsNumeric(Target)がTrueであればHG丸ゴシックM-PRO、それ以外だと(Font.Nameを)MSPゴシックに設定する。 ーー 本質問は課題丸投げであり、それほど難しいコードでなく、行数もわずかなので、全部は挙げない。自分で勉強して見てください。
- wolis
- ベストアンサー率45% (14/31)
もっと良い方法があるとは思いますが、 Private Sub Worksheet_Change(ByVal Target As Range) Dim myCell As Range If Selection.Cells.Count > 1 Then For Each myCell In Selection If Not IsNumeric(myCell.Value) Then With myCell.Font .Name = "HG丸ゴシックM-PRO" .Size = 13 End With Else With myCell.Font .Name = "MS Pゴシック" .Size = 10 End With End If Next Else If Not IsNumeric(Target.Value) Then With Target.Font .Name = "HG丸ゴシックM-PRO" .Size = 13 End With Else With Target.Font .Name = "MS Pゴシック" .Size = 10 End With End If End If End Sub
- xls88
- ベストアンサー率56% (669/1189)
試しにマクロを組んでみました。 場合によっては、シートのWorksheet_Changeイベントを使えば良いかもしれません。 Sub testフォント() Dim c As Range For Each c In Range(B2:B100) With c.Font If IsNumeric(c) Then .Name = "HG丸ゴシックM-PRO" .Size = 13 Else .Name = "MS Pゴシック" .Size = 10 End If End With Next End Sub
- gyouda1114
- ベストアンサー率37% (499/1320)
過去ログです 「関数で文字フォントなどの書式を変更することはできません。」ということです。 http://okwave.jp/qa2559431.html