![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
Excelで、オートシェイプかテキストボックス、
もしくは結合した大きなセルに、
他セルの参照を入れ込みたいと思っています。
ところが、その入れ込みたいデータが、
場合によって何行にもわたったり一行だけになったりというような性質の
もので、行数が少ない場合は文字を大きくしたいのですが、
どうしたら良いのかわかりません。
しかも、改行関数CHAR(10)を使っており、書式の設定は「折り返して全体を表示」モードにせざるを得なく、「縮小して全体を表示」にできません。
たとえば、シェイプの大きさをあらかじめちょうど良く設定しておいて、
シェイプにあわせて文字の大きさを自動的に変える、
というような事はできるのでしょうか。
それか、セルの書式設定を「折り返し」「縮小」を同時に指定する、という
ような事はできるのでしょうか。
条件付書式で、文字が何バイト以上ならこの大きさ、というような
設定をできるならそうしようか、とも考えたのですが、
そのものズバリの解決法ではありませんし・・・。
面倒な質問ですが、お知恵を貸してくださる方いらしたら
お願いいたします。
No.2ベストアンサー
- 回答日時:
> 改行関数CHAR(10)を使っており、書式の設定は「折り返して全体を表示」
> モードにせざるを得なく、「縮小して全体を表示」にできません。
例えば、A1 セルの参照だとして、
=SUBSTITUTE(A1,CHAR(10),"")
こんな風に改行コードをドロップする参照式で、[折り返して表示]にすれば
良いのでは?
> 条件付書式で、文字が何バイト以上ならこの大きさ、というような
> 設定をできるならそうしようか、とも考えたのですが...
標準フォントが固定ピッチならバイト数で計算は可能でしょうが、プロポー
ショナルフォントであったり、標準フォント以外だと VBA + API で文字幅
を計算することになります。画面解像度によっても幅は異なるますし、加え
て、どのタイミングでフォントサイズを適用するのか、、という問題があり
ます。考慮しなければならない要素が非常にたくさんありすぎて難しいです。
結論としては改行コードをドロップするなど、何とか「折り返して表示」で
再検討してみてはいかがでしょうか。
...というか、Excel に最初から搭載されてても良さそうな機能ですよね?
なんで無いのだろう^^;
この回答への補足
とり急ぎお礼を申しましたが、すみません、補足させてください。
「折り返しモードにせざるを得なく、縮小モードにできない」というのは、
セルに、最小限の情報が入れ込まれた時に大きく表示されるくらいの大フォントに設定しておいて、情報が増えればセルの大きさに合わせて小さくなって行く」という事ができない、という意味で書きました。
また、CHAR(10)は数回にわたり入れ込まれており、
具体的に言うと
A1&B1&CHAR(10)
&
A1&A2&CHAR(10)
・
・
・
という風になっています。
この状況で
CHAR(10)をふるい落としてみると、ただ一行の中にベタで
並んで行くだけで、やっぱり体裁をなしません。
・・・うーん。
EXCELに、「縮小して全体を表示」の他に、
文字の自動拡縮機能があればなぁ、とつくづく思います。
ありがとうございます。
・・・はい、おっしゃるとおり、文字のバイト数で設定するのは
苦しいですよね。
シェイプのほうを文字の大きさに合わせる機能はあるのに、
逆に、シェイプのほうに文字を合わせる機能は無い事に気づきました。
どうもありがとうございます。参考にいたします。
No.1
- 回答日時:
参考ということで...
Sub Macro1()
ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, 100, 30#,100, 50).Select
x = Cells(1, 1): l = Len(x)
If l < 20 Then
fs = 16
Else
fs = 12
End If
Selection.Characters.Text = x
With Selection.Characters(Start:=1, Length:=l).Font
.Name = "MS Pゴシック"
.FontStyle = "標準"
.Size = fs
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
End With
Range("E10").Select
End Sub
これは、マクロの記録で、テキストボックスを作成して、適当に文字を入れて出来たマクロに手を加えた物です
セルA1の文字数を数え、20文字より少なければ、フォントサイズを16ポイントにし、そうでなければ12ポイントにしています
この辺の数値は、いろいろ試行錯誤して決めなければなりませんが、改行の有無等も計算して、フォントサイズを変更する事も出来ます
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) EXCELの書式設定を固定することはできませんか? 5 2023/06/20 17:05
- Excel(エクセル) エクセルにおいてセル内の文字を出来るだけ大きく表示する方法を教えてください。 4 2022/07/30 08:08
- Visual Basic(VBA) Excel VBA 書式変更で困ってます。 オートフィルターの日付フィルターを用いて データの絞り込 2 2022/07/26 22:16
- Excel(エクセル) Excel 特定セルの数値を参照したセルの0表示が空白にならないのはどうしてか? 3 2022/04/28 22:23
- Excel(エクセル) エクセルの数式で教えてください。 1 2023/02/02 10:20
- Excel(エクセル) エクセルの数式について教えてください。 2 2023/03/04 09:54
- Excel(エクセル) 【再度】Excelの関数について教えてください。 4 2023/07/28 13:06
- Excel(エクセル) Excelの関数について教えてください。 5 2023/07/28 11:27
- Excel(エクセル) エクセルで”入力シート”の文字書式の変更を”出力シート”で同じ文字書式で印刷したいです。VBA希望 4 2023/04/24 11:07
- Visual Basic(VBA) エクセルの数式で教えてください。 1 2023/07/31 15:49
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで文字が白くなる
-
Excelで、空白を表示したい
-
エクセルで文字を含む式に、カ...
-
エクセル条件付書式で指定の時...
-
アクセスで#エラーを表示させ...
-
エクセル(2003) 「1900/1/0...
-
エクセルで、時間 0:00を表示...
-
EXCELでフォントの色を固定され...
-
エクセル マイナスは黒文字で、...
-
Excelのテーブルでセルの書式設...
-
excelの軸
-
TO_CHARでのゼロ非表示について
-
today関数で日付を全角文字で表...
-
エクセルでゼロ「0」が「-」に表示
-
エクセルで数値の文字数を数え...
-
エクセルの書式設定が解除でき...
-
エクセルで上付き,下付き文字...
-
Excelで勝手に小数点以下が増える
-
アルファベットにフリガナ
-
Excelで小数部が勝手に繰上げさ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで文字が白くなる
-
エクセルで文字を含む式に、カ...
-
Excelで、空白を表示したい
-
エクセル条件付書式で指定の時...
-
アクセスで#エラーを表示させ...
-
エクセル(2003) 「1900/1/0...
-
エクセルで、時間 0:00を表示...
-
Excelのテーブルでセルの書式設...
-
excelの軸
-
小数点以下の数字だけ小さいフ...
-
Excelで小数部が勝手に繰上げさ...
-
エクセルを使っていて2024/5/15...
-
エクセル マイナスは黒文字で、...
-
Access ¥マークを表示しない
-
エクセルの書式設定が解除でき...
-
today関数で日付を全角文字で表...
-
エクセルで上付き,下付き文字...
-
TO_CHARでのゼロ非表示について
-
Excelのセルでの配置です。
-
Excel 書式の一致を調べる関数...
おすすめ情報