Excel97VBAの質問です。
セルの値が長すぎて表示しきれない場合は、フォントサイズを調整したい。
Sub Macro1()
With Sheet1
.Columns("A").ColumnWidth = 1
.Range("A1").Value = 1
.Range("A2").Value = 12
.Range("A3").Value = 123
.Range("A4").Value = 1234
End With
End Sub
この場合、A2~A4の表示が潰れます。
フォントサイズを例えば、
Sub Macro2()
.Range("A2").Font.Size = 7
.Range("A3").Font.Size = 5
.Range("A4").Font.Size = 3
End Sub
と設定すれば潰れずに値が表示されます。
このようなフォントサイズの最適値を自動的に設定したい。
よろしくご指導お願いします。
No.5
- 回答日時:
セルの値は『数値』としています。
そのため、まず、NumberFormatLocal で数値の書式を指定し、指数表示にならなようにしています。
後は、フォントサイズを操作しています。
オーバーフロー?して『#』を含んだ表示ならフォントサイズを小さくしています。
その時のフォントサイズの減少幅は『1』としています。
AutoFitで列幅をいじったり、ShrinkToFitで見せかけの変更ではフォントを操作できないので、
下のマクロでは『Font.Size』のみを使っています。
質問にあるA1~A4を選択状態にして下のマクロを実行してみました。(Excel2000です)
フォントや数値によって、質問にあるA2、A3、A4の7、5、3は7、5、4になったりもするようです。
質問ではA1のフォントサイズについて触れられていませんが、A2、A3、A4とは違って、逆にフォントを大きくしていく必要はないでしょうか。この点については質問に触れられていないので操作していません。対応は簡単でしょう。
Sub FontFit()
Dim rg As Range 'セル
For Each rg In Selection
With rg
.NumberFormatLocal = "0"
While Left(.Text, 1) = "#" And .Font.Size > 0
.Font.Size = .Font.Size - 1
Wend
End With
Next
End Sub
No.4
- 回答日時:
#2で解答を入れた者です。
#1の2002ponさんのご解答を「.WrapText = True」と誤解しました。ご解答者とご質問者にお詫びいたします。また方法がないとしましたが誤りです。結論は「.ShrinkToFit = True」があるが正解のようです。今後とも勉強します。
ただ半角英字ではフォントサイズが小さくなり過ぎて、使えるのかなと心配しました。
No.2
- 回答日時:
ご質問と逆のColumnWidthを広げるAutoFitはありますが、
FontSizeを拡大縮小するメソッドはないと思います。
文字数を取得して、Case文などで文字数の段階で何段階かのフォントをセットするより他の方法はないのでは。RangeオブジェクトにAutoFormatメソッドがあるが、書式を自動的に設定
するが、自動の意味が違う。#1の方の解答は、2行以上に
おり返すが、Fontの大きさは縮めない。.WrapText = True
に当たります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
高校生はアルバイトするべきだろうか?賛成だったら「賛」、否定だったら「否」を文頭においてあなたの意見を教えてください。
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
天使と悪魔選手権
悪魔がこんなささやきをしていたら、天使のあなたはなんと言って止めますか?
-
エクセルで折り返しと縮小の同時設定は無理?
Excel(エクセル)
-
VBAで条件によりフォントサイズを自動で変更したい2
Excel(エクセル)
-
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
-
4
VBAで条件によりフォントサイズを自動で変更したい
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAのフォント変更(エクセルか...
-
フォントの大きさ
-
コンボボックス内の文字サイズ変更
-
VB.NET2005 TextBox 高さ(Heig...
-
\\マークが表示されない
-
リストコンロールの一行だけを...
-
D3DXCreateFontとID3DXFont::Dr...
-
WPFのフォントカラー変更につい...
-
ドロップダウンリストのフォン...
-
文字色 エクリプス
-
エディットボックスのフォント...
-
プロポーショナルフォントの文...
-
ActiveReport中のフォントサイ...
-
Win32 APIで、テキストボックス...
-
Eclipseで修正したファイル名の...
-
エクセルで作った新しいウイン...
-
「アイテムは収集されました」...
-
グラフの交点の求め方(Excel)
-
コントロールの書式設定で、“コ...
-
マインクラフト(pc版)で座標...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
フォントの大きさ
-
コンボボックス内の文字サイズ変更
-
VBAのフォント変更(エクセルか...
-
VB.NET2005 TextBox 高さ(Heig...
-
ドロップダウンリストのフォン...
-
リソースエディタでスタティッ...
-
VBA TEXTBOXテキストボックスの...
-
エディットボックスのフォント...
-
プロポーショナルフォントの文...
-
Msgboxで使用するフォントの指...
-
チェックボックスの箱のサイズ...
-
文字色 エクリプス
-
コンボボックスの一部のアイテ...
-
Eclipseで修正したファイル名の...
-
WPFのフォントカラー変更につい...
-
ワードでコントロールツールボ...
-
static 文字が上に張り付いて・...
-
Excelのセルのフォントサイズを...
-
JakaraPOI セル内部のフォント...
-
GetTextExtentPoint32での高さ
おすすめ情報