- ベストアンサー
100行のセルの高さを一括で調整するには?(Excel)
文字数の違うデータが100行もあった場合、 書式→行→自動調整で、 画面上は100行それぞれの行に合ったセルの高さになりますよね。 この自動調整後に、「プラス10pt」とすることは可能ですか? 印刷時に途切れていない状態で表示したいのですが、 自動調整を利用すると、画面上は収まっていても 印刷したら途切れていることがあります。 要は、セル内の文字数が変わる100行のデータを、 その行の文字数に合わせて一括で調整し、印刷したいのですが、 何か良い方法がございましたら、教えてください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
>何か良い方法がございましたら、教えてください。 これは手作業がNGなのであれば、マクロしか手はないと思います 以下のマクロをALT+F11でVBE画面を開き、左上のVBA Projectでシート名を右クリックし「挿入」→「標準モジュール」で表示される画面に貼り付けて下さい。 マクロの実行はワークシート画面に戻って適当なセル範囲を選択した後ALT+F8でマクロ一覧を開き、マクロ名を選択して「実行」ボタンです。(選択されている範囲に対してのみ実行します) Sub Macro1() Dim idx As Integer Selection.EntireRow.AutoFit For idx = Selection.Row To Selection.Row + Selection.Rows.Count - 1 Rows(idx).RowHeight = Rows(idx).RowHeight + 10 Next End Sub もし行の高さを変更する処理があくまで印刷用で、元のシートには手をつけたくないならマクロは以下になります(元のシートをコピーしてから処理してます) Sub Macro2() Dim idx As Integer Dim adr As String adr = Selection.Address ActiveSheet.Copy after:=ActiveSheet Range(adr).EntireRow.AutoFit For idx = Range(adr).Row To Range(adr).Row + Range(adr).Rows.Count - 1 Rows(idx).RowHeight = Rows(idx).RowHeight + 10 Next End Sub
その他の回答 (3)
- zap35
- ベストアンサー率44% (1383/3079)
#01です >10行~100行(その日によって行数は変動) であれば「Selection」の部分を「取り込んだデータ範囲」に書き換えれば良いのですが、「どうすれば良いか」を再回答する材料は補足に何も書かれていませんね。それを想像して回答しなければなりませんか? 例えばA列で最終データを判断すればよいなら Range(Range("A1"), Range("A65536").End(xlUp)).Select Selection.EntireRow.AutoFit でもよいでしょう。後はご自身で実際のシートにあわせて色々試してみてください。(再々回答は遠慮します)
お礼
なるほど、ありがとうございました。 色々と試してみます☆
- mshr1962
- ベストアンサー率39% (7417/18945)
たぶんセルのフォントが問題なのでしょう。 プリンターに用意されているトゥルーフォントとの相性で 一部のフォントは表示時と印刷時で文字幅が変わります。 そのために表示で行の高さで丁度いいケースでも、 印刷時には列幅が変わって結果的に、行方向で改行を起こして 印刷文字切れになるのです。 単行の場合は、文字幅一杯で横方向に文字切れます。 試しにフォントを変えて印刷してみてください。 種類によっては+10Pしないで済むフォントもあると思います。
お礼
>プリンターに用意されているトゥルーフォントとの相性 というのを知ることができて、勉強になりました。 ありがとうございます♪
- 2323tantyan
- ベストアンサー率20% (1/5)
100行でも60000行でも全ての行の高さをすぐ簡単に高さを変えることは簡単です又列の幅も簡単にすべての行かえることも出来ます。 しかし文の内容から見ると列幅のことですね。 印刷範囲も余白の修正、改ページビューで調整すると1ページにA3をB5に印刷することも出来ます もう一度質問修正ください 私には質問が理解できませんでした。すみません
補足
マクロの実行で試してみましたら出来ました。 本当にありがとうございます。 10行~100行(その日によって行数は変動)のデータを 取り込む際にすでにマクロを利用しております。 選択範囲を指定して「マクロの実行」ではなく、 変動するその日の行数すべてを一発で 「取り込みと同時に行幅も調節」することは出来ますでしょうか? Editorに元々書いてあった「取り込みマクロ」の一番下に Sub Macro1() Dim idx As Integer Selection.EntireRow.AutoFit For idx = Selection.Row To Selection.Row + Selection.Rows.Count - 1 Rows(idx).RowHeight = Rows(idx).RowHeight + 10 Next End Sub を挿入させて頂いたのですが、 範囲を選択していないからなのか、 教えていただいた「行幅」だけ動作しませんでした。 行数もその日によって変わってしまうので、選択範囲に悩みました。