一つのセルに100字程度の文字を入れて、5・6行で全体が表示されるようにセルの設定で「折り返して全体を表示する」にチェックマークを入れています。
セルの高さが自動調節され、大体は全体が表示されるのですが、時々(結構?)セルからはみ出たり、ひどいときには一行丸まる表示されてなかったりします。
もちろん、そのときに気づいて手動セルの高さを調節すれば何も問題ないのですが、このようなセルがたくさんあるものですから一つ一つセルを読み返してチェックするのは非効率で困っています。
また、入力画面上では一つのセルに収まっていても、印刷プレビューでははみ出てたり、いちいちプレビューで確認していたら仕事にならないので困っています。
セルの高さの自動調整をかけたら、わざわざ文字の一部が表示されない高さに調節される場合があるので、これでは自動調節の意味もありません。
何かよい手立てはないでしょうか?いろんなフォントを試してみましたけど、これもダメでした。

このQ&Aに関連する最新のQ&A

A 回答 (5件)

NO4です。


追記の内容から見ますと、列は1列のみで良さそうですね。(多列でもかまいませんが)
私なら、使用する全ての行高さを入力する文字数の最大数のものが入る高さの固定します。
その上でフォントはプロポーショナルで無いものを選択します。
文字数のすくないものがどうのこうの、自動調整がどうのこうのいうより手っ取り早いものと
思いますが・・・

この回答への補足

おはよう御座います。
最初に書いているように、各セル内に5・6行程度です(中には1行のものから30行になるものもあります)が、中にはもっと長い文章も入ることもあり、最大の行数は毎日更新されるされるかもしれませんのであらかじめ最大のセルの高さにあらかじめ設定することは難しいです。データー量としても、1セル内の情報量が上記程度で、さらにセルの列が5列、セルの行数は毎日追加され最終的に数百~数千行に達します。ですから、データ量の少ないセルに対しては自動調整をしてなるべく高さを抑えたいと思っています。

補足日時:2005/04/20 06:28
    • good
    • 0

セルの中に書かなければいけないのでしょうか?


BOXを書いてBOX内に文字を書けば良いのではないでしょうか?
BOXの枠線はオートシェイブの書式設定で”枠無し”を指定すれば消えますので
セルの大きさを気にする必要は無いと思いますが...
    • good
    • 0
この回答へのお礼

ありがとう御座います。
ただ、今の作業はたくさんのセルに文字データを入力し、その後、並べ替えや文字列の操作を行うため、テキストボックスでは対応できません。
ちなみに、「テキストボックスの書式設定」→「配置」タブ→「自動調整」にチェックボックスを入れると基本的にはテキストボックスが文字列の長短に応じて自動的に調節されますが、ここでも入力画面と印刷とでズレが結構でます。これも、プリンタドライバとフォントの問題なんでしょうね。

お礼日時:2005/04/20 00:54

http://oshiete1.goo.ne.jp/kotaeru.php3?q=994662
を読んでみました。

調べてみましたが、どうも、セル内の行数が増えれば増えるほど、その狂いが生じてくるように思います。以前から、この問題は知っていましたが、仮に、VBAのコードでも、今だ定番のものがないように思います。それは、フォントサイズによっても、プリンタ・ドライバによっても変るからだと思うのです。一応、以下のようなマクロを作ってみましたので、できれば、Personal.xls (個人用マクロブック)の標準モジュールに登録して、ボタンなどで、マクロを登録して使ってみたらどうかと思います。

ただ、
 'フォントサイズによって変動する定数
 Const cFontSize As Double = 0.5
ここの部分は、なんともいえません。この値を増やせば、下側に隙間が多く増え、減らせば、当然、隙間がなくなります。今、フォント11で、180語、7行で試してみただけです。

Sub RowHight_Arrange()
 Dim Rng As Range
 Dim c As Range
 Dim WordCount As Long
 Dim StdHeight As Double
 Dim CellRows As Integer
 Set Rng = Selection 'マウスで、セルの範囲を選択
 StdHeight = StandardHeight
 'フォントサイズによって変動する定数
 Const cFontSize As Double = 0.5
 For Each c In Rng
  With c
   If .WrapText Then
    .Rows.AutoFit '高さを自動調整
    WordCount = LenB(StrConv(.Text, vbFromUnicode))
    CellRows = WordCount \ .ColumnWidth + 1
    .EntireRow.RowHeight = .RowHeight + _
    ((.Font.Size \ 2) * cFontSize) * CellRows
    .VerticalAlignment = xlVAlignTop
   End If
  End With
 Next c
End Sub
    • good
    • 0
この回答へのお礼

VBAは詳しく分かりませんが、確かにプリンタドライバやフォントサイズによって狂いが生じてきているのも確かですね。ありがとう御座います。

お礼日時:2005/04/20 00:43

印刷時に文字が欠ける件については、下記URLの#4でいくらかマシになります。


お試しを・・・。

Excelでセル内の文字が印刷時欠ける
http://oshiete1.goo.ne.jp/kotaeru.php3?q=994662
    • good
    • 0
この回答へのお礼

今の所完璧です。本当にありがとう御座います。
これ、裏技ですね!

お礼日時:2005/04/19 16:58

1.[CTRL]+[A]で全体選択


2.右クリック → セルの書式設定(F) をクリック
3.「配置」タグをクリック
4.「文字の制御」内の「折り返して全体を表示する(W)」をチェック

で、一気に設定できないでしょうか?

この回答への補足

設定そのものは出来ています。
設定済みのセルについて、文字が掛けてしまう状況です。

補足日時:2005/04/19 16:38
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QExcel ワークシート関数で参照セルのアドレスを固定値ではなく動的に記述したい

皆様こんにちは。
Excel ワークシート関数で参照セルのアドレスを固定値ではなく、他のセルの値 (式の計算結果) を使用して動的に記述したいのですが、可能でしょうか。
一例ですが、

=VLOOKUP("山田 花子",Sheet2!A2:C100,3,FALSE)

という式の参照先アドレス範囲開始行「2」を固定値ではなく、他のセルの値を使用して動的に記述したいのです。
また、参照先の終端である、「100」についても固定値ではなく、有効データ領域の終端を動的に取得する方法 (VBA の Worksheet.UsedRange.Rows.Count または Worksheet.UsedRange.Rows.Address に相当) が知りたいと思います。

どちらも、計算式そのものをVBAで動的に出力するのは容易なのですが、出力されたブックを手作業で編集する際の利便性も考慮すると、ワークシート関数だけで解決する方法も知っておいたほうがよいと思っています。

ご存知の方、コメントを頂けると幸いです。

Aベストアンサー

A列の入力済みの最下行が文字列の場合
=MATCH("",A:A,-1)

最下行が数値の場合
=MATCH(MAX(A:A)+1,A:A,1)

で、最終行が取得できます。
取得された数値を、関数でセル範囲の指定に使うためにはINDIRECT関数を用います。
今夜は今から飲み会なのであとはINDIRECT関数を検索してみてください。
成功を祈ります。では。
(*^∇^)ノロ"ロヾ('∇'*) Cheers!!

Qセルの高さを「指定したセルの高さ×セル内の行数」に自動で修正する方法について

エクセル2010を使っている者ですが、セルの高さの設定のことで伺います。

「ホーム」タブ→「セル」のリボン→書式で、セルの高さを指定することができますが、そこで指定すると、1行で入力されたセルのみでなくセル内で行の折り返しがあって複数行になっているセルについても、指定したとおりの高さになってしまいます。(例えば、高さを14にすると、1行で入力されたセルのみでなく2行で入力されたセルについても高さが14になってしまい、入力した値が表示されなくなってしまう)

セルの高さを指定しつつ、複数行になったセルについては「指定したセルの高さ×セル内の行数(正確には、そのセルの所属する行中の最大行になったセルの行数)」に自動で修正されるようにする方法はありますか?

Aベストアンサー

こんにちは。

おそらくは、マクロでよろしいかとは思いますが、「自動で修正される」というように設定してしまうと、私なら、うっとうしく感じますが、こういう感覚は、人それぞれですから言明はしません。

実際に、私が使う目的でマクロを考えてみました。

「個人用マクロブック(PERSONAL.XLSB)」
「標準モジュール」にマクロを置き、
「クイックアクセスツールバー」に登録。
(私は、ショートカットにはしません。たぶん、忘れてしまうからです)

なぜ、「個人用マクロブック」に登録するかというと、2点の利点があります。

ひとつは、保存する拡張子の影響がない(xlsx/xlsm)。もう一つは、クイックアクセスツールとして、いつでも使える。

なお、十分に納得のいかない内容でしたら、以下のマクロは個人用マクロブックにはいれるべきではありません。
今回は、特別に、マクロに内容説明を入れましたので、それを読めば、何をしようとしているか分かるはずです。
ふつうは、このような解説を入れませんから、納得がいけば解説部分は消してよいです。

'//
Sub Lines_CellHeight()  'この名前は、臨時ですから、適当に変えてください。(日本語名可)
'No. 9043589
 Dim c As Range
 Dim i As Long
 Dim h As Double
 Dim stdHt As Double
 Dim ht As Double
 If TypeName(Selection) <> "Range" Then  'マウスで選択した場所が、セルの範囲でないなら、
  MsgBox "該当範囲を選択してください。", vbExclamation  'メッセージを出して、
  Exit Sub  'マクロは終わる
 End If
 stdHt = ActiveSheet.StandardHeight  '標準のセルの高さ
 For Each c In Selection  '選択範囲からひとつのセルを検討する
  If c.HasFormula = False And Not IsEmpty(c) Then  'セルは数式がないことと、空ではないなら、
   i = Len(c.Value) - Len(Replace(c.Value, vbLf, ""))  'セル内の改行コードの数
   If i > 0 Then  '一つでもあれば、
    ht = c.Rows.RowHeight  'セルの行の高さ
    If stdHt * (i + 1) > ht Then  'セルの高さよりも、標準のセルの高さ✕(改行コード数+1)が高ければ、
     c.FormatConditions.WrapText = False  '書式の折り返して全体を表示する、Offにし
     c.EntireRow.RowHeight = ht * (i + 1)  'セルの高さ✕(改行コード数+1) の高さにする
    End If
   End If
  End If
 Next c
End Sub

こんにちは。

おそらくは、マクロでよろしいかとは思いますが、「自動で修正される」というように設定してしまうと、私なら、うっとうしく感じますが、こういう感覚は、人それぞれですから言明はしません。

実際に、私が使う目的でマクロを考えてみました。

「個人用マクロブック(PERSONAL.XLSB)」
「標準モジュール」にマクロを置き、
「クイックアクセスツールバー」に登録。
(私は、ショートカットにはしません。たぶん、忘れてしまうからです)

なぜ、「個人用マクロブック」に登録するかというと、2点の...続きを読む

Qオープンオフィスのカルクで、関数内の特定のセルを固定したい

オープンオフィスのカルクで、Excelでいう「絶対参照」の「$」の意味と同じものを関数の中に設定したい(式をコピーしてもあるセルだけを固定できるようにしたい)

Aベストアンサー

もしかしてキーボード操作についてでしょうか?
でしたらExcelと異なりShift+F4です。

QExcelで「折り返して全体を表示」するときのセルの高さ自動調整について

Excel2002、WinXPです。

長文の入ったセルを選択し、「折り返して全体を表示」にチェックを入れるとセルの高さが自動的に広がりますよね。でも時々これが自動で広がらないのです。なぜなのでしょう?

チェックを入れると改行はされるのですが、セルの高さが(毎回ではありませんが)広がらないため手作業で広げることになります。行は数千あったりするのでとんでもない手間です。1行のセルは1行分の高さ、2行のセルは2行分の高さにしたいので、全選択して一括で調整することもできません。

対処方法をご存知の方、どうぞご教授ください!

Aベストアンサー

入力範囲を全部選択して、
書式-行-自動調整
ではどうでしょう

Q1つのセルに、関数固定・データの入力規則(リスト)を設定できますか?

お世話になります。
1つのセルに以下のことを設定したいと考えております。

・毎月1日になったら、"未対応"(入力規則:リスト)と表示させる。
・"対応済"(入力規則:リスト)に変更しない限り、"未対応"表示にする。
・1日に"対応済"に変更できる状態にする。

1つのセルに、入力規則のリストと、関数を固定できたら
上記のことができると考えています。
セルにロックをかけるとリストを変更することができないので、
他に手段がないかと模索しております。
アドバイスありましたら、ぜひお願い致します。

Aベストアンサー

>・毎月1日になったら、"未対応"(入力規則:リスト)と表示させる。
>・"対応済"(入力規則:リスト)に変更しない限り、"未対応"表示にする。
>・1日に"対応済"に変更できる状態にする。

1つのセルで、数式とデータの共存はできません。
VBAで対応することになります。

Q[Excel]3箇所のセルの内容を別のセル一つに表示する計算式は?

エクセルについての質問です。
セル3箇所に文字が入っています。
(その3箇所のセルには必ずしも文字が入っているか分かりません。)
その3箇所のセルの内容を別のセル一つに表示する計算式はありますか?


例でいいます。

セル[A1] には『あいうえお』
セル[A2] には『』(未入力)
セル[A3] には『かきくけこ』 

上記を3つの内容を、

セル[A4] に
『あいうえお
 かきくけこ』

と表示させたいのです。


セル[A4]にどのような計算式を入れたらよいのでしょうか?
そのような計算式はあるのでしょうか?

分かる方ご教授よろしくお願いします。

Aベストアンサー

=IF(A1="","",A1&CHAR(10))&IF(A2="","",A2&CHAR(10))&A3

Qエクセルの関数で質問です。上のセルになんらかの文字が入っていた場合、左

エクセルの関数で質問です。上のセルになんらかの文字が入っていた場合、左のセルに入っている文字を返すにはどういう記述をしたらよいでしょうか。

返す文字は固定ではなく、左隣に入っている文字(数字)を返したいです。
この記述を結構大量のセルに入力するので、どのセルにも共通した記述を教えていただけるとなお良いです。

よろしくお願いします。

Aベストアンサー

エクセルの共通の操作ですが,あるB2セルに「上があったら左を返す」
=IF(B1="","",A2)
という式を入れておきます。

このB2セルをコピー,結構大量の「目的のセル」を選んでただ貼り付けると,共通でそのように動作する式に自動で書き換わって投入されます。
それぞれのセルにそれぞれのセル番地の式を,いちいち書き換えて記入していく必要は全くありません。

QEXCELで、一つのセルに書かれた複数の数字を、別々のセルに表示したい

EXCELで、一つのセルに書かれた複数の数字を、別々のセルに表示したいんですが、やり方を教えてください。よろしくお願いします。

A1に
60 0.8 42.2 21.6 1.5 1.3 0.7 13.5 4.5 2.6 2.0 24.1 5.7 25.2
というように、14個の数字が書かれています。

これを
A1に60、A2に0.8、A3に42.2、・・・・・、A14に25.2
というように、別々のセルに書き換えたいです。

ご存知の方、よろしくお願いします。

Aベストアンサー

【前提条件】
・A列のセルのデータは「スペース」などで区切られている。
・A列の右は区切ったデータが収まるだけの空きセルがある(13セル以上)。

【操作方法】
・メニューバー → [データ(D)] → [区切り位置]

・区切り位置指定ウィザード - 1/3
  元のデータの形式
    ● カンマやタブなどの区切り文字によってフィールドごとに区切られたデータ(D)
    ○ スペースによって右または左に揃えられた固定長のデータ(W)
  [次へ(N) >]

・区切り位置指定ウィザード - 2/3
  区切り文字
    □ タブ(T)   □ セミコロン(M) □ カンマ(C)
    ■ スペース(S) □ その他(O):   [  ]
  [次へ(N) >]

・区切り位置指定ウィザード - 3/3
  列のデータ形式
    ● G/標準(G)
    ○ 文字列(T)
    ○ 日付(D): [   ]
    ○ 削除する(I)
  データのプレビュー(P)  … 区切り位置が正しいか確認する
  [完了(F)]

お試しください。

【前提条件】
・A列のセルのデータは「スペース」などで区切られている。
・A列の右は区切ったデータが収まるだけの空きセルがある(13セル以上)。

【操作方法】
・メニューバー → [データ(D)] → [区切り位置]

・区切り位置指定ウィザード - 1/3
  元のデータの形式
    ● カンマやタブなどの区切り文字によってフィールドごとに区切られたデータ(D)
    ○ スペースによって右または左に揃えられた固定長のデータ(W)
  [次へ(N) >]

・区切り位置指定ウィザード - 2/3
  区切り...続きを読む

QVLOOKUP関数を使用して交差する位置から2行下のセルの参照式が分かりません

VLOOKUP関数を使用し検査値(検査値に商品名を指定)に該当するセルとF列とが交差するセル位置から下に2行移動したセルを参照する式が分からないのですが。例えばセルA1に入力されている"商品名A"(固定位置)を検査値として、セルA100にある"商品名A"(位置が上下に可変する)をVLOOKUP関数で検索し更に"商品名A"とF列とが交差するセルF102のセルを検索する式を教えてほしいのですが。下の例で説明しますとセルA1の"商品名A"をセルA100からA200の範囲から検索し、F列と交差するセルから2つ下のセルF102の"不良品"を参照する式をVLOOKUP関数を使用した式を教えてください。セルA100の"商品名A"とセルF102にある"不良品"との相対位置は不変です。具体的には100行の上に1行が追加されると"不良品"の位置は下に1行ずれるというものです。(要は1行追加しても不良品のセル位置は商品名Aから右に5、下に2移動した位置は変わらないということです)。VLOOKUP関数を使用するのは行が追加・削除されてもセルA100にある"商品名A"の位置が行の上下動に対応させるためです。もしVLOOKUP関数以外の関数式がございましたら併せて教えてほしいのですが、宜しくお願いします。


    A   B  C  D   E   F 
1  商品名A
2  商品名B


100商品名A
101
102               不良品

VLOOKUP関数を使用し検査値(検査値に商品名を指定)に該当するセルとF列とが交差するセル位置から下に2行移動したセルを参照する式が分からないのですが。例えばセルA1に入力されている"商品名A"(固定位置)を検査値として、セルA100にある"商品名A"(位置が上下に可変する)をVLOOKUP関数で検索し更に"商品名A"とF列とが交差するセルF102のセルを検索する式を教えてほしいのですが。下の例で説明しますとセルA1の"商品名A"をセルA100からA200の範囲から検索し、F列と交差するセルから2つ下のセルF102の"不良品"を参...続きを読む

Aベストアンサー

VLOOKUP関数ではできないのでINDEXとMATCH関数を組み合わせます
=INDEX($F$102:$F$202,MATCH(A1,$A$100:$A$200,0))
とか
=INDEX($F:$F,101+MATCH(A1,$A$100:$A$200,0))

QEXCELで異なるセルに入力した 年・月・日 を一つのセルにまとめて年月日を表示する方法を教えてください。

現在、A列に年(西暦)、B列に月、C列に日を入力しております。
この状態で、D列にA列からC列に入力したデータをもとに年月日を自動的に表示させるにはどうすればよいのでしょうか。

具体的には、下記のように表示させたいと思っております。

A列    B列    C列    D列
2006  12    25    2006/12/25

以上、お分かりになる方がおられましたら教えてください。

Aベストアンサー

=DATE(A1,B1,C1)

です。


人気Q&Aランキング

おすすめ情報