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.2
- 回答日時:
ご質問と逆のColumnWidthを広げるAutoFitはありますが、
FontSizeを拡大縮小するメソッドはないと思います。
文字数を取得して、Case文などで文字数の段階で何段階かのフォントをセットするより他の方法はないのでは。RangeオブジェクトにAutoFormatメソッドがあるが、書式を自動的に設定
するが、自動の意味が違う。#1の方の解答は、2行以上に
おり返すが、Fontの大きさは縮めない。.WrapText = True
に当たります。
No.3
- 回答日時:
#1のものです。
補足です。「セルの書式設定-配置-縮小して全体を表示する」
は、
.ShrinkToFit = True
でして、2行には折り返しません。
.WrapText = True は、
「セルの書式設定-配置-折り返して全体を表示する」
です。
ありがとうございます。
.ShrinkToFit = True
でOKです。
MergeCellsしても希望どうり動いてくれました。
No.4
- 回答日時:
#2で解答を入れた者です。
#1の2002ponさんのご解答を「.WrapText = True」と誤解しました。ご解答者とご質問者にお詫びいたします。また方法がないとしましたが誤りです。結論は「.ShrinkToFit = True」があるが正解のようです。今後とも勉強します。
ただ半角英字ではフォントサイズが小さくなり過ぎて、使えるのかなと心配しました。
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
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 4 2023/05/26 10:43
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- Visual Basic(VBA) excel2021で実行できないマクロ。どこを直したらいいのか 2 2022/03/28 03:40
- Visual Basic(VBA) このVBAでExcelアプリケーションを作成は必要ですか? 3 2023/07/19 21:13
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/03/28 14:52
- Visual Basic(VBA) エクセル VBA メール本文に指定セルに記載されているURLをリンクとして記載する方法 8 2022/08/08 07:50
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/02/02 09:25
- Visual Basic(VBA) エクセルのVBAでダブルクリックでチェックを入れたあと 1 2022/10/26 20:30
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2022/05/26 17:19
このQ&Aを見た人はこんなQ&Aも見ています
-
風水の観点で選ぶ観葉植物とは?置き場所や上げたい運気ごとの注意点を紹介!
観葉植物で運気をアップするコツを、風水デザイン1級建築士の福島昌彦さんに伺った。
-
エクセルで折り返しと縮小の同時設定は無理?
Excel(エクセル)
-
VBAで条件によりフォントサイズを自動で変更したい2
Excel(エクセル)
-
折り返して表示、縮小して表示、両方にチェックできない?
Windows Vista・XP
-
-
4
Excel VBAで文字列の可視長を得るにはどうしたよいでしょうか?
Visual Basic(VBA)
-
5
エクセル関数について(フォントサイズ変更)
Excel(エクセル)
-
6
セルの書式設定のフォントやサイズの設定はできないの
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
フォントの大きさ
-
コンボボックス内の文字サイズ変更
-
ドロップダウンリストのフォン...
-
VBAのフォント変更(エクセルか...
-
VB.NET2005 TextBox 高さ(Heig...
-
D3DXCreateFontとID3DXFont::Dr...
-
エディットボックスのフォント...
-
Macbook Word フォント色変更で...
-
リソースエディタでスタティッ...
-
Excelのセルのフォントサイズを...
-
リストコンロールの一行だけを...
-
VBA TEXTBOXテキストボックスの...
-
GetTextExtentPoint32での高さ
-
Eclipseで修正したファイル名の...
-
VB6.0で、コンボボックスの背景...
-
VisualStdio2005の背景の色は変...
-
VC++2010 ボタンなどのレイアウ...
-
OSの違いによるバーコード(CODE...
-
背景色のついでに文字色もかえ...
-
フォントごとの文字列の幅の取得
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
フォントの大きさ
-
コンボボックス内の文字サイズ変更
-
VBAのフォント変更(エクセルか...
-
ドロップダウンリストのフォン...
-
チェックボックスの箱のサイズ...
-
VB.NET2005 TextBox 高さ(Heig...
-
エディットボックスのフォント...
-
VBA TEXTBOXテキストボックスの...
-
コンボボックスの一部のアイテ...
-
リソースエディタでスタティッ...
-
文字色 エクリプス
-
JTableのヘッダー文字のサイズ変更
-
JakaraPOI セル内部のフォント...
-
VBにて指定した通りにExcelの列...
-
Eclipseで修正したファイル名の...
-
プロポーショナルフォントの文...
-
Msgboxで使用するフォントの指...
-
ワードでコントロールツールボ...
-
WPFのフォントカラー変更につい...
-
エディットの文字サイズ変更
おすすめ情報