Excel(97 for Win / 98 for Mac)にて、折り返しによる複数の行を含むセル
がある行の高さを、一括で指定する方法は無いでしょうか?
自動設定にすると、セル内部の行数に応じた高さになりますが、その場合は、
あくまでも自動設定で、希望の高さより狭くなってしまったりします。
つまり、例えば、
内部に1行しか含まない行は 30
内部に2行を含むセルがある行は 60
内部に3行を含むセルがある行は 90
というように、内部に含む”折り返し行数”当たりの行の高さの指定を
するということです。
手作業で合わせるというのが、一回限りの操作としては一番安易ですが、
かなりの行数・折り返し行数のばらつきの多さから、少々しんどいのです。
おそらく、マクロが書ければ解決しそうですが、マクロの知識はほとんど
ありません。これを機会に覚えるというのも選択肢かとも思いますが、
簡単な解決法がありましたら教えてください。
No.2ベストアンサー
- 回答日時:
#1のものです。
VBAになりますが、Sub test01()
Dim sh1 As Worksheet
Set sh1 = Worksheets("sheet1")
MsgBox sh1.Cells(1, 1).RowHeight & "の整数倍の行高にします。"
For i = 1 To 3
a = sh1.Cells(i, 1)
s = 1
bairitu = 1
p01:
p = InStr(s, a, Chr(10), 1)
If p = 0 Then GoTo p02
MsgBox p
bairitu = bairitu + 1
s = p + 1
GoTo p01
p02:
sh1.Cells(i, 1).RowHeight = bairitu * sh2.Cells(1, 1).RowHeight
Next i
End Sub
Sheet1でA列に文字を入れるとして、A1に望みの
行高を設定しA2以下データを入れてみてください。
入力が終わったら、上記を実行してみてください。
改行した数の整数倍分だけ行高が増えるはずです。
考えておられることに基本線が合っておれば、後の改良は更なる要望を上げていただければ考えます。
データ入力セルは、書式-セル-配置-折り返して全体を表示にして 、改行はALT+Enterキーで改行してください。
ありがとうございました。
下記のように、試行錯誤で一部改変して、ほぼ思い通りの結果を得られる
ようになりました。(ヘルプと、かつて少しだけかじったBasicの知識で
かなり試行錯誤した結果です。)
欲を言うと、明示的に改行してある行数だけではなく、自動改行で折り返されて
いる場合も行数としてカウントできると完璧なのですが、それはちょっと無理
ですよね?
あと、均等割付にすると上下がいっぱいのところまで来てしまって、上下のセル
との間隔が狭くなってしまうので、縦位置は中央詰めにしています。そうすると、
単純に整数倍では上下の余白が大きくなりすぎるために、0.7倍してみました。
実は、この機能を使うのは私ではなくて、さらにエクセル初心者の人ですので、
この、2行以上の時の増分をフォントサイズとA1の高さから自動で求められれば
更にいいのです。が、それはなんとかできそうな気がしますので、練習を兼ねて
もうすこし自分で工夫してみようと思います。
Sub gyou_takasa()
Dim sh1 As Worksheet
Rem Set sh1 = Worksheets("sheet1")
Set sh1 = ActiveSheet
MsgBox sh1.Cells(1, 1).RowHeight & "の整数倍の行高にします。"
For i = 1 To Selection.Rows.Count
For j = 1 To Selection.Columns.Count
a = sh1.Cells(i, j)
s = 1
bairitu = 1
bairitumax = 1
p01:
P = InStr(s, a, Chr(10), 1)
If P = 0 Then GoTo p02
Rem MsgBox p
bairitu = bairitu + 1
s = P + 1
GoTo p01
p02:
If bairitu > bairitumax Then bairitumax = bairitu
Next j
p03:
If bairitumax > 1 Then bairitumax = (bairitumax - 1) * 0.7 + 1
sh1.Cells(i, 1).RowHeight = bairitumax * sh1.Cells(1, 1).RowHeight
Next i
End Sub
No.3
- 回答日時:
すでにマクロの例が出されていますが、せっかく記述したので、レスします。
こちらは、セルのダブルクリックによる処理ですが‥‥。
得意分野でないので拙い表記ですが、誰か得意な方のフォローがあればいいですね。
[Alt]+[F11] で Visual Basic Editor を起動させ、Sheet?(Sheet?) をダブルクリックして表示されるエディタに次のモジュールをコピペして、Visual Basic Editor を終了してください。
-------------- コピーは次の行から
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
DT = Target.Value
N = 0
For P = 1 To Len(DT)
If Mid(DT, P, 1) = Chr(10) Then N = N + 1
Next P
Select Case N
Case Is = 0
Selection.Rows.RowHeight = 18
Case Else
Selection.Rows.RowHeight = N * 15 + 18
End Select
With Selection
.VerticalAlignment = xlCenter
.WrapText = False
.Columns.AutoFit '※
End With
End Sub
-------------- コピーは前の行まで
当該セルをダブルクリックすると、セル高が自動設定されます。
ここでは、1行データのセル高を 18、1行増えるごとに 15 づつ増えるようにしてあります。
列幅を自動変更しない場合は、※つき行のコマンドの先頭に ' をつけてください。
'.Columns.AutoFit
また、'※ は削除してもOKです。
ありがとうございました。
行数が多いため、一括で処理できるNo.2の方の方法を使わせていただく
ことになりましたが、今後の参考にさせていただきたいと思います。
(やはり、マクロがかけると便利だなと実感しましたので、ちょっと勉強
してみようかという気になりました。)
No.1
- 回答日時:
書式-行-高さ-自動調節にして
書式-セル-配置-折り返して全体を表示にして
書式-セル-配置-縦位置を上詰めにして
セルの入力時にALT+Enterキーで改行すれば
ご希望に近いようになるのではないですか。
行高はフォントサイズで決まるようになります。
早速のアドバイスありがとうございます。
質問が少々舌足らずでした。
アドバイス頂いた内容まではわかっているのですが、行高をフォントサイズ
で決まるものと異なる(具体的には、もう少し広く)したいのです。
と、なると、やはり、他の質問の解答に出てくるように、
「改行幅を指定する方法は無い」
という結論に行き着かざるをえないのでしょうか…。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセル: セルの枠を超えて表示
-
Excel countif関数で取り消し線...
-
Excelでcsvやtxtで保存する時に...
-
エクセルファイルに _x000D_ と...
-
セル内の一部の文字だけをハイ...
-
マウスポインターが白十字のまま
-
エクセルの白黒の反転で困って...
-
エクセルで1つのセルにスクロ...
-
エクセルでセルを上下に結合し...
-
エクセル2013で英単語を折り返...
-
セルは大きくさせず、中の文字...
-
セルの大きさを個別に変更したい。
-
全セルの末尾に改行(Alt+Enter...
-
エクセルの入力規則プルダウン...
-
セルを結合しても、文字をセル...
-
Excel入力で勝手にエンター押さ...
-
エクセルで半角漢字
-
VBA:結合されたセルに対する「...
-
エクセルで右隣のセルより優先...
-
CSVファイルでテキストの改行の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセル: セルの枠を超えて表示
-
Excel countif関数で取り消し線...
-
セル内の一部の文字だけをハイ...
-
エクセルで1つのセルにスクロ...
-
エクセルファイルに _x000D_ と...
-
Excelでcsvやtxtで保存する時に...
-
マウスポインターが白十字のまま
-
エクセルの白黒の反転で困って...
-
セルを結合しても、文字をセル...
-
セルは大きくさせず、中の文字...
-
エクセルでセルを上下に結合し...
-
エクセルで画像を透過させて画...
-
エクセル2013で英単語を折り返...
-
エクセルで右隣のセルより優先...
-
Excel入力で勝手にエンター押さ...
-
エクセルの入力規則プルダウン...
-
VBA:結合されたセルに対する「...
-
エクセル 折り返して全体を表...
-
Excel 隣のセルに文字を表示さ...
-
エクセルのセル外改行は可能で...
おすすめ情報