• 締切済み

エクセルの長文が入った結合セルを自動調整する方法

heisukewadaの回答

回答No.7

詳しいことがわからないので、なんともなのですが、VBAを作ってみました。 「開発」から”Visual Basic"と、進んで ”Microsoft Visual Basic for Applications” の、窓が開いたら 「挿入」 「標準モジュール」と進んで、下記を、コピペしてください。 Sub AdjustMergedCellRowHeightInRange() Dim inputRange As Range Dim cell As Range Dim charCount As Integer Dim rowNum As Integer Dim newHeight As Double Dim charPerLine As Integer Dim rowHeightFactor As Double Dim i As Integer ' ユーザーに範囲を入力してもらう On Error Resume Next Set inputRange = Application.InputBox("変更する範囲を選択してください:", Type:=8) On Error GoTo 0 ' 選択されたセルが空でないことを確認 If inputRange Is Nothing Then MsgBox "セルが選択されていません。", vbExclamation Exit Sub End If ' ユーザーに文字数の指定を求める charPerLine = InputBox("1行あたりの文字数を入力してください:") ' ユーザーに行の高さのファクターを入力してもらう rowHeightFactor = InputBox("行の高さに乗じるファクターを入力してください:") ' 各行ごとに処理を行う For i = 1 To inputRange.Rows.Count ' 各行の範囲を取得 Set cell = inputRange.Rows(i) ' 結合されたセルであることを確認 If cell.MergeCells Then ' 文字数に基づいて行数を計算 charCount = cell.Cells(1).Characters.Count rowNum = Application.WorksheetFunction.RoundUp(charCount / charPerLine, 0) ' 行の高さを調整 newHeight = (rowNum * rowHeightFactor) ' ファクターによって行の高さを調整 cell.Rows(1).RowHeight = newHeight End If Next i End Sub 結合したセルは、「セルの書式設定」で、「配置」タブ 横位置:左詰め 縦位置:中央揃え ”折り返して全体を表示する”に、チェックを入れておいてください。 窓の ”マクロの実行”アイコンをクリックしても 「開発」の 「マクロ」をクリックしても構いません。 「マクロ」をクリックした場合 ”AdustMergedCellRowHeightInRange”が、青色反転していると思いますので、「実行」ボタンをクリックしてください。 変更する範囲を指定します。 例:C3:I5 いち行あたりの文字数を入力します。(これは行数を計算するためにいれるので、大きい数字だと行数が少なく、小さい数字だと行数が大きくなります、つまり高さが高くなります。色々いテレ見て試してください。 例:60 ”行に乗じるファクター”を、入力します。これは、フォントによって高さが変わるので、使っているフォントによって変化させます。大きくすると高さが高くなります。 例:40 文字数と、ファクターを、調節して高さを調整してみてください。

関連するQ&A

  • エクセルで結合したセルの高さの自動調整方法?

    エクセル2000、Win2000です。 いくつかのセルを横に結合し、セル内で「折り返して全体を表示する」にしています。 セルを結合してない場合は、入力文字数が多くなっても行の高さを自動調整にすれば、ちゃんと折り返して全部表示されますが、結合したセルの場合は、自動調整がきかず、 いちいち手動で調整しなくてはいけません。 1.結合セルでも自動調整する方法はないですか? 2.ない場合、VBAで行の高さを変えてみようと思いますが、セル内で折り返しているかどうか、および何行に折り返されているかはどう判別すればいいでしょうか?

  • エクセル:結合したセルの高さ自動設定

    EXCEL2000で結合したセルの高さ自動設定がききません。 結合したセルは ・文字の配置 横位置:左詰 縦位置:上詰め ・文字の制御 折り返して全体を表示 セルを結合する になっています。 セルを5つ結合して、その結合したセルの横幅を文字列が 越えたら次の行にいって、かつその折り返し部分が見えるように したいんです。 結合していない単体のセルの場合は、折り返され、かつ 折り返し部分が見えるように高さが変わります。 結合したセルでの高さ自動設定はできないのでしょうか? 教えてください。よろしくお願いします。

  • エクセルの行幅の自動調節

    エクセルで、改行を含む10行以上のデータを1つのセルに記入しています。 このとき、直接記入すれば自動的に全体が見えるように高さ(行の幅)が調節されるのですが (「折り返して全体を表示」にしています。)、 コピペで貼り付けたものはなぜか全体が表示されません。 折り返して表示はされるのですが、10行のコピペなら8~9行くらい見えるように行幅が大きくなるだけで見えない部分があります。 さらに、10行全部見えるようにしようと行の番号が書いてある左の部分(3行目なら「3」と「4」の間)をダブルクリックしても 適切な行幅になるはずが、変化ありません。行幅をドラッグして大きくすれば大きくはなるのですが・・・ なぜでしょうか? エクセルで、改行を含む10行以上のデータを1つのセルに記入しています。 このとき、直接記入すれば自動的に全体が見えるように高さ(行の幅)が調節されるのですが (「折り返して全体を表示」にしています。)、 コピペで貼り付けたものはなぜか全体が表示されません。 折り返して表示はされるのですが、10行のコピペなら8~9行くらい見えるように行幅が大きくなるだけで見えない部分があります。 さらに、10行全部見えるようにしようと行の番号が書いてある左の部分(3行目なら「2」と「3」の間)をダブルクリックしても 適切な行幅になるはずが、変化ありません。行幅をドラッグして大きくすれば大きくはなるのですが・・・ なぜでしょうか?

  • 結合セルでの行の高さの自動調整

    エクセルでの質問です。 結合セルに折り返して表示の設定がしてあり、文章が入力されています。入力方法が統一されていないため、セルによって、一行だったり、長文だったり、セル内で改行して箇条書きで入力されていたりします。 文章の下が切れてしまうセルがあるので、手作業で行の高さを広げています。行数が何百行もあったりするのでとても手間と時間がかかってしまいます。いい方法がないかと、“マクロでセル内の文字数が50以上なら行の高さを30にする”としてみたのですが、箇条書きのセルだとうまくいきません。そこで、“セル内に3行以上なら、行の高さを30 とする”というように行数を数えることは可能でしょうか? また、他に良い方法があれば教えてください。宜しくお願いします。

  • 【エクセル】 結合セルで行の高さを自動調整する方法

    通常、セルに多数の文字を書き込んでも列幅を変更 したくないときには、セルの書式設定で 「折り返して全体を表示する」 としておけば、列幅を広くすることなく、行の高さ が自動調整されます。 これを、結合セルでやろうとするとどうしても 自動調整してくれません。 結合セルでも、行の自動調整機能が働く方法を 教えてください。 よろしくお願いします。

  • エクセルのセル~結合セルへのコピーの仕方を教えて

    フォーマットのセルがありますが 結合セルで出来ています マクロの設定も含まれているようです Aの一列の中で上下2つのセルで一つになっています それが五行あります 左にはエクセルのもともとの枠の番号が1から10まであって Aの縦のセルの数は五行です そのAの縦に名簿のセルを例えば5名分貼り付けますと もともとの結合前のセルに戻って5行貼り付けられてしまいます 左にあるエクセルのもともとの枠の番号ですと1から5までに 貼り付けられるのです わたしはもともとの結合セルの5つのセルにはめ込みたいのですが いっぺんには出来ません 一つづつですとできます なぜなのでしょう 結合セルにまとめてコピーできる方法を教えてください マクロの設定はくずれてもあらかじめ消してもかまいません 私がしたいのは コピーして改めて作ったものの印刷だけです よろしくお願いします

  • EXCELでセルの結合をして

    EXCELでセルの結合をして 2セル 1セル 3セル の複数行 2セル 1セル 3セル 2セル 1セル 3セル 2セル 1セル 3セル 2セル 1セル 3セル 2セル 1セル 3セル の5行の2行目以降を1つ行を下げようと3行から5行を選択してコピーして4行目に貼り付けたらセルがすべて1セルになってセル結合がガタガタになるのですが、セル結合を維持した状態で行をずらす方法を教えて下さい。 行の追加だとそれ以降の右側のセルにもセル結合があるのでただ単に行の追加ではだめなんです。

  • エクセル2007 結合セル

    エクセル2007 結合セル 下の画像のようなエクセルシートを 練習用に2枚作成しました。 上段が月の入力フォームで、 下段が各個人の営業成績表です。 ここで、下段の成績表の1行目が B列からI列まで、セル結合されており その中に表題の( 月分)が表示されています。 ここの月の前の空白部分に上段の入力フォームの黄色で 入力した月の数字をを自動的に表示させることはできるのでしょうか。 結合させなければ、簡単にできたと思いますが、 結合している前提で、教えていただけるとありがたいです。 よろしくお願いします。

  • エクセル 自動セル結合

    エクセルについての質問です。 1つのセルにずっと文章を打ち込んでいき、そのセルをこえる長さの文章になったとき、その文全てが表示されるよう自動的にセルを結合していくようにするには、どのような設定をすればいいのですか? いちいち「結合して中央揃え」をしなければならず、困っています。 ご教授よろしくお願いします。

  • 【エクセル:セル内の文書結合】 右に並んだ全てを結合するには?

    既出でしたら申し訳ございません。 エクセルで下記「サンプルイメージ」での記載状況の際 1行A列のセルに、1行目B列からZZ列に記入された 全ての文書を、結合する方法があれば教えて頂けないでしょうか? 尚、1行A列のセル内の表示方法は、結合するセル毎に改行され、 結合するセルが未記入の場合は、そのセルは結合対象から外したいと 考えています。 以上、わかりにくければ補足いたしますのでご指摘下さい。 ご回答頂ければ幸いです。 サンプルイメージ 下記の通り入力されているものを・・・   <A><B><C><D>・・・・<ZZ> 1)     あ   い   う        わ 2)     あ       う        わ 3)     あ   い   う 4)     あ        このように表示したい   <A><B><C><D>・・・・<ZZ> 1) あ   あ   い   う        わ    い    う    わ 2) あ   あ       う        わ    う    わ 3) あ   あ   い   う    い    う 4) あ   あ