
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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで文字が白くなる
-
エクセルで文字を含む式に、カ...
-
エクセル条件付書式で指定の時...
-
Excelで、空白を表示したい
-
エクセルで、時間 0:00を表示...
-
EXCELの散布図で日付が1900年に...
-
アクセスで#エラーを表示させ...
-
エクセルで上付き,下付き文字...
-
today関数で日付を全角文字で表...
-
Access ¥マークを表示しない
-
Excelのテーブルでセルの書式設...
-
Excelのセルでの配置です。
-
小数点以下の数字だけ小さいフ...
-
エクセル マイナスは黒文字で、...
-
エクセル/グラフのデータテー...
-
エクセル(2003) 「1900/1/0...
-
excelの軸
-
強調の・
-
INDESIGNで空改行などのマーク...
-
Excelで勝手に小数点以下が増える
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで文字が白くなる
-
エクセル条件付書式で指定の時...
-
Excelで、空白を表示したい
-
エクセルで文字を含む式に、カ...
-
EXCELの散布図で日付が1900年に...
-
エクセルで、時間 0:00を表示...
-
アクセスで#エラーを表示させ...
-
小数点以下の数字だけ小さいフ...
-
Excelのテーブルでセルの書式設...
-
エクセルで上付き,下付き文字...
-
強調の・
-
Excelのセルでの配置です。
-
today関数で日付を全角文字で表...
-
excelの軸
-
Excel 書式の一致を調べる関数...
-
Access ¥マークを表示しない
-
「countif」関数の結果の後に文字
-
Excel関数 マイナスは赤字、+の...
-
エクセルの書式設定に時間(0:0...
-
INDESIGNで空改行などのマーク...
おすすめ情報