人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

エクセルの質問です。
(「 」→一つのセルを表しています。)

A1「 」B1「 」
A2「 」B2「 」

に入っている文字もしくは文章を
他のセルに自動で表せるようにしたいので、
=if(A1="","",A1)
=if(B1="","",B1)


と式を作り、コピー先のシートの4つのセルに入れたのですが、
A1が長い文章の場合、B1のセルにも式が入っているため、途中で文章が途切れてしまいます。

それでセル4つを結合させて、セル内で改行しました。
しかし、他のセルでは1行になってしまい、同じように表現できませんでした。

上記のような状況で、他のセルに表現するには、どうしたらよいでしょうか。
急ぎで回答頂けると助かります。
よろしくお願いします。


●質問者: misato19802
●カテゴリ:コンピュータ
✍キーワード:A1 b2 エクセル コピー セル
○ 状態 :終了
└ 回答数 : 6/6件

▽最新の回答へ

1 ● GreenStar
●17ポイント

「セルの書式設定」の「配置」にて

・折り返して全体を表示する(セルの高さが自動的に変わるので全体のバランスがくずれます)

・縮小して全体を表示する(長い文字列だとフォントサイズが小さくなりすぎて読めなくなります)

のいずれかにチェックを入れます!! どっちかしか選べません!!


下記は2007の画面ですが2000とか古いものでも同じ手順で操作できます!!

http://www.excel-img.com/format10.html

◎質問者からの返答

その方法では、当初のセルと同じように表現できません。


2 ● きゃづみぃ
●25ポイント

>A1が長い文章の場合、B1のセルにも式が入っているため、途中で文章が途切れてしまいます。

これは 見た目だけの問題です。

セルの幅、高さは 結合しようがしまいが、限界は 同じです。

幅をいくら広げても 255までしか広がりません。

エクセルでは 隣のセルに何も入っていないと そこに表示させることが可能です。

なので すぐ隣のセルに値を入れるのではなく、いくつか 離したところに 値を入れたらいいでしょう。

◎質問者からの返答

言葉足らずですみません。

印刷するときに、文字が途切れてしまうということを表現したかったのです。

原本のシートと同じように自動的に表現し、印刷も同じようにしたいと考えています。


3 ● きゃづみぃ
●1ポイント

印刷するときに 途切れてしまうのは、よくあることです。

対策は 画面上で、セルの幅を余分に 幅をとる。

セルの高さも 1行分空白の行をとる。

ぐらいしかありません。

プレビューで 確認して 何度かやりなおすといいでしょう。

◎質問者からの返答

原本のシートの形を変えることはできないので、写しのシートもそういう調整はできません。

一般的なことは試しており、できれば関数等で、解決したいと考えています。


4 ● GreenStar
●1ポイント

長い文章が最大でどの程度になるかを想定! 最初からセルの大きさやフォントサイズなどを変えたシートを用意しておくのが通例!!

回答1は想定外の長さでデザインが狂う場合の予防策!!

原本のシートと同じように自動的に表現

それは無茶というものです! Excelは、いえ、コンピュータは万能ではありません!!

「セルの書式設定」や「印刷の設定」などの各種設定全般を「原本のシートと同じように設定するマクロ」を作るしかありませんが、作成や動作確認にどれだけの時間を要するか判りません!!

原本のシートをコピーして穴埋め! 作業手順を見直すのが良いでしょう!

◎質問者からの返答

関数で近い方法まで紹介しているサイトがあったのですが、

若干うまくいきませんでした。

作業手順を見直すかどうかは、最後まで質問を待って考えます。


5 ● airplant
●23ポイント

書式が「折り返して全体を表示する」の場合、【=B1】のように値を式で書いてある場合に行幅が自動的に広がらないという問題と思います。


これはExcelの仕様なので、手動で広げるしかありません。

ただし、手動での広げ方は簡単です。

  1. 該当行を選択(左上の隅を選択して、全行を選択するのが簡単)
  2. 行番号の付近に持っていくと列幅変更のアイコンになるので、ダブルクリックする
  3. 自動で全部の行幅がジャストフィットに変更される

もし、面倒であれば、上記の操作をマクロにしてもいいと思います(マクロの記録で簡単にできる)

なお、印刷でずれる場合の調整は、ジャストフィット後にマクロで1?2行程度余裕をつけるやり方を取っています。

  '必要箇所を下記のようなコードでループを回す
 Rows("7:7").RowHeight = Rows("7:7").RowHeight + 10
◎質問者からの返答

そのやり方ですと、幅とかが原本と違うことになるんですよ、


1-5件表示/6件
4.前の5件|次5件6.
関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ