[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『印刷時のフォントサイズの自動調整』(のぶ)
セルの列、行幅は決まっており、A4サイズで印刷できる大きさに設定してあります。 セルに入る文字数によってフォントサイズを大きくしたり、小さくしたりしたいと考えています。 現在、手動でプレビューをみながら、セルの文字の大きさを変更しています。
文字数によって自動で調整する方法はありますでしょうか?
宜しくお願いします。
見当はずれでしたら申し訳ありません。
セルの書式設定 配置 文字の制御 縮小にして全体を表示するにチェック なわけないですよね 2013/07/09 22:07 aki
縮小にして全体を表示で対応できるところもありますが、文章がながくなってしまうところがあり、1行になってしまいます。2行、3行で表示したい。
折り返して表示でき、かつ、全体を縮小表示ってできないのですかね・・・(のぶ)
>折り返して表示でき、かつ、全体を縮小表示
配置 文字の制御 折り返して全体を表示するにチェック
と併用する形になるかと思います。 フォントにもよりますが 例えば、MSPフォントで既存の幅(8.38 72ピクセル)で、8文字表示できます 即ち、文字数によってセル内の表示を変更すればいいのかな? 何文字以下なら、縮小表示で、それ以外は折り返し表示みたいな感じで、、、
Sub Macro1()
With Selection
.WrapText = False '[折り返して全体を表示する]
.ShrinkToFit = False '[縮小して全体を表示する]
End With
End Sub
こんなものと組み合わせると出来るのかも ごめんなさい、自分には出来ません 2013/07/11 00:013 aki
とりあえず、こんなのを動かしてみるとどうですか?
調整したいセル範囲がわからないので とりあえず E列 にしてあります。
複数列、複数ヶ所ある場合は コードの変更が必要なので どの列・どの範囲 なのか 詳しく教えて下さい。
標準モジュールに貼りつけて、実行して 様子を見てもらえると良いのですが。
'------ Sub NOBU() Dim CWith As Double, FSize As Double Dim i As Long Dim MyCell As Range, MyCells As Range
Application.ScreenUpdating = False
With Columns("E:E") '←実際の列に変更
.Font.Size = Application.StandardFontSize
.WrapText = True
Set MyCells = .Range("A1", .Range("A" & Rows.Count).End(xlUp))
End With
Range("A:A").Insert Shift:=xlToRight
For Each MyCell In MyCells
If MyCell.Value <> "" Then
CWith = MyCell.ColumnWidth
FSize = MyCell.Font.Size
MyCell.Copy Range("A1")
MyCell.Value = Range("A1").Value
With Range("A1")
For i = FSize To 0 Step -2
.Font.Size = i
.ColumnWidth = CWith
.EntireColumn.AutoFit
If .ColumnWidth <= CWith Then
FSize = i
Exit For
End If
Next
End With
MyCell.Font.Size = FSize
End If
Next
Range("A:A").Delete Shift:=xlToLeft
Set MyCells = Nothing
Application.ScreenUpdating = True
End Sub
'------
(HANA)
vbaで文字数が8文字単位で区切り、例えば15文字なら2行としてカウントし、文字の大きさを60とする。
1、2行の場合は文字は60サイズ
3行は48サイズ
4行は32サイズとする。
セルB4に=A28のような式が入っています。
B10、B16、B22のような感じで等間隔で上記のような数式が入っています。
ファンクションを作成し、数式で文字フォントを変更しようとするとできない。
但し、ファンクションを実行すると文字サイズの変更ができる。
B4に数式=test(A28)と入力しても文字フォントが変更されない。
ボタン等を作成し、testを呼ぶとフォントが変更される。
public function test(a as range)
プログラムは省略
end function
=test(A28)のような形で自動でフォントサイズを変更する事はできないのでしょうか?
宜しくお願いします。(のぶ)
Excel のユーザー定義関数の制限について - Microsoft Support http://support.microsoft.com/kb/170787/ja ワークシートのセル内の数式から呼び出されるユーザー定義関数では、 Microsoft Excel の環境を変更できません。 つまり、このような関数では次の処理が実行できません。 •スプレッドシートでのセルの挿入、削除、または書式の設定。
って書いてあるので、ユーザー定義関数では駄目なんじゃないかと思います。
(HANA)
やはりだめですか・・・。Excelもユーザー関数で環境を変えられたらすごく便利なのに・・・残念。
とういうことは、ボタンか何かで関数を呼び出すしかないということですね。
ありがとうございます。(のぶ)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.