表のレイアウト変更をするマクロを作成しております。
列の幅は
Columns("X").ColumnWidth = 30 'X列の幅30
フォントの位置、サイズは
Columns("X").HorizontalAlignment = xlCenter 'X列の横位置
Columns("X").VerticalAlignment = xlCenter 'X列のタテ位置
Columns("X").Font.Size = 16 'X列のフォントサイズ
で何とかなったのですがセルの高さが変更できません。
Rows(3).RowHeight = 50 '3行目の高さ50
Rows("3:10").RowHeight = 50 '3から10行目の高さ50
くらいまではわかります。
ですが、シート全体とか入力されている最終行までの行の高さを変更する方法がわかりません。
素人の考えですが、以下の通りでできると思っていました。
-----------
Sub Macro1()
n = Cells(Rows.Count, "C").End(xlUp).Row 'C列の最終行まで
Rows(n).RowHeight = 50
End Sub
-----------
ですが、実際に実行してみたところ、どういうわけか、
エラーは出ないものの行の高さが「50」になりません。
すいませんが詳しい方、説明の上手な方、直接、コードで説明できる方、
お手数ですが教えて下さい。よろしくお願いします。
追記
すいませんが以下の3点は設定上ハズせません。
1)幅を変えるのは3行目から最終行までです。
1行目と2行目には日付、etc.の項目行が入っていますので。
2)表には途中に空欄がありスカスカです。
3)3行目以下でしたら最終行まででなく列全体(=シート全体)の高さが「27」になっても大丈夫です
No.1
- 回答日時:
こんなのはいかがでしょうか?
---------------------------------------------------------------------------------
Sub test()
Rows("3:" & ActiveSheet.UsedRange.Rows.Count).RowHeight = 50
End Sub
ご解答ありがとうございます。
Rows("3:" & ActiveSheet.UsedRange.Rows.Count).
こんな範囲指定のやり方があるんですね。
覚えておきます。
機会がありましたらまたお願いします。
※間違えてNo.4さんへのお礼が、No.3のところに入ってしまいました。
すいません。改めて、こちらでお礼させて頂きます。
今回はありがとうございました。
No.2
- 回答日時:
No.1 の補足です。
一度高さを変えてしまった行はデータを削除しても、使われている事になってしまいます。(もちろん行削除した場合には反映されます)
たとえば200行までデータがあった状態で実行すると、200行まで変更されます。次に150行以降のデータを[Delete]キーなどで削除した状態で、高さを「70」にして実行すると元の200行までの高さを70にします。
No.3
- 回答日時:
最終行までならもっと簡単に
---------------------------------------------------------------------------------
Sub test()
Rows("3:" & Rows.Count).RowHeight = 50
End Sub
ご解答ありがとうございます。
ほぼお考えの通りで宜しいかと思います。
ただし、
>Rows(n).RowHeight = 50
ですと、n行(=最終行)だけの高さを50に設定することになっていませんか。
その通りでした。
でも、なさりたいことは、3~n行までの高さを設定したいのでしょうから
例えば、対象とする行で繰り返すことにすれば、
For rw = 3 To n
Rows(rw).RowHeight = 50
Next rw
みたいにすれば可能ですね。
まさにこれでした。やっと変数を使うところまできたので、
始まりと終わりのことまで考えが至りませんでした。
質問をよく読んでからご解答して頂き、本当にありがとうございます。
また機会がありましたらよろしくお願いします。
今回はありがとうございます。
No.4ベストアンサー
- 回答日時:
こんにちは
ほぼお考えの通りで宜しいかと思います。
ただし、
>Rows(n).RowHeight = 50
ですと、n行(=最終行)だけの高さを50に設定することになっていませんか。
>エラーは出ないものの行の高さが「50」になりません。
ちゃんと実行されて、最終行の高さが50になっているものと想像します。
でも、なさりたいことは、3~n行までの高さを設定したいのでしょうから
例えば、対象とする行で繰り返すことにすれば、
For rw = 3 To n
Rows(rw).RowHeight = 50
Next rw
みたいにすれば可能ですね。
一方で、手作業でも同じですが、一行々々を設定してゆくよりもまとめて選択して設定してしまう方が簡単で早いですね。
まとめて指定する方法はいろいろ考えられます。
Rows("3" & n).RowHeight = 50
とか
Rows(3).Resize(n - 2).RowHeight = 50
実際には、行全体を選択しなくてもセルの高さを指定すれば結果は行全体に及ぶので、
Range("A3").Resize(n - 2).RowHeight = 50
などでも可能です。
状況に応じて、指定しやすい方法を利用なさるのが良いと思います。
ご解答ありがとうございます。
ほぼお考えの通りで宜しいかと思います。
ただし、
>Rows(n).RowHeight = 50
ですと、n行(=最終行)だけの高さを50に設定することになっていませんか。
その通りでした。
でも、なさりたいことは、3~n行までの高さを設定したいのでしょうから
例えば、対象とする行で繰り返すことにすれば、
For rw = 3 To n
Rows(rw).RowHeight = 50
Next rw
みたいにすれば可能ですね。
まさにこれでした。やっと変数を使うところまできたので、
始まりと終わりのことまで考えが至りませんでした。
質問をよく読んでからご解答して頂き、本当にありがとうございます。
また機会がありましたらよろしくお願いします。
今回はありがとうございます。
No.5
- 回答日時:
こんにちは。
スタンタードの行全体の高さを変えて、1~2を元の高さに戻す方法にすると良いと思います。
この場合は、表の最後尾まで触れていませんので、データのある所までしか、使われていません。ファイルは小さいままで済みます。
その後でフォントの大きさを変えないと、それに合うようにセル幅を変えてしまいます。なお、高さは完全な50にはたぶんならないと思います。ピクセルが優先されていますので、丸められてしまいます。
'//
Sub ChangeRowHeight1()
Dim OrgRowHeight As Double
With ActiveSheet
OrgRowHeight = .Cells(1, 1).RowHeight
.Cells.Rows.RowHeight = 50#
.Rows("1:2").RowHeight = OrgRowHeight ' または、スタンダード 13.5
.Columns("X").ColumnWidth = 30 'X列の幅30
'フォントの位置、サイズは
.Columns("X").HorizontalAlignment = xlCenter
.Columns("X").VerticalAlignment = xlCenter
.Columns("X").Font.Size = 16 'X列のフォントサイズ 'ここは重要
End With
End Sub
ご解答ありがとうございます。
この前は http://bit.ly/2awqTb2 の件、ありがとうございました。
いつも詳しいご解答ありがとうございます。
今回は質問の内容をよく読んで返答して頂いたfujillinさんがベストアンサーですが、
また機会がありましたらよろしくお願いします。
ご解答ありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 最終列の右へSUM関数を作成するため下記コードを実行しましたが、最終列「10月28日」が上書きされて 3 2022/12/05 20:32
- Visual Basic(VBA) 複数csvを横に追加していくマクロについて 2 2023/04/25 09:19
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) まとめシートから集計シートへA列のコードが一致したら1行コピーするマクロをネット上で見つけました。こ 1 2022/08/30 14:11
- Visual Basic(VBA) 最終行の指定について教えてください。 複数シートを1シートへまとめる下記マクロでは各シートの6行目を 1 2022/10/04 18:37
- Visual Basic(VBA) オブジェクトが見つかりません 1 2023/06/24 19:43
- Visual Basic(VBA) フォルダの場所を可変にしたいです(マクロ) 4 2023/05/11 10:00
- Visual Basic(VBA) VBA 行削除した連番 4 2023/06/27 16:00
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Excel(エクセル) マクロで最終行から上に検索を逆にしたい 1 2022/05/17 18:27
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
EXCEL VBA セルに既に入力されている文字に文字を追加する
Excel(エクセル)
-
エクセルVBAでセルに入力したパスでブックを開く
Excel(エクセル)
-
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
-
4
特定の文字がある行以外を削除するマクロ
その他(Microsoft Office)
-
5
ExcelのVBAで連番を振る。
Excel(エクセル)
-
6
ExcelVBAを使って、値がある場合は作業を繰り返し実行するプログラムを作成したい。
Visual Basic(VBA)
-
7
EXCEL VBAで、セルの文字列の前後に文字を入力する方法は?
その他(Microsoft Office)
-
8
名前をつけて保存した後、元のファイルに戻るには
その他(コンピューター・テクノロジー)
-
9
Excel vbaで特定の文字以外が入っている時、メッセージを表示させるプログラムについて
Visual Basic(VBA)
-
10
【EXCEL】【VBA】空欄は飛ばして処理する方法を教えて下さい。
Excel(エクセル)
-
11
【vba】指定範囲の中に任意の文字があるときの条件分岐
Excel(エクセル)
-
12
Excel VBAで同じフォルダ内のファイルを開くには?
Excel(エクセル)
-
13
エクセルで特定の文字列が入った行を非表示にしたい
Excel(エクセル)
-
14
VBA 存在しないシートを選択した時にエラーメッセージを表示するには?
Visual Basic(VBA)
-
15
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
16
別のシートから値を取得するとき
Visual Basic(VBA)
-
17
ブック名、シート名を他のモジュールからも参照可能にする方法
Access(アクセス)
-
18
コンボボックス内の文字サイズ変更
Excel(エクセル)
-
19
ファイル名を今日の日付、時刻で保存する
Visual Basic(VBA)
-
20
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel2017 フィルタ昇順並びがA...
-
オートフィルタ後のデータから...
-
エクセルで行の高さ及び列幅の...
-
矩形範囲の複数列を縦1列に並...
-
急ぎ!色のついたセルを非表示...
-
Excelで並び替え後にア行...
-
文字列を比較し、相違するフォ...
-
複数回答のクロス集計の方法
-
エクセル VBA 行間隔を飛ばした...
-
検索条件に合うセルの個数を数...
-
Excelで複数列のデータを1列に...
-
マクロで行の高さを設定したい
-
EXCELで日付を比べ3か月以内の...
-
プルダウンに【なし、平均、デ...
-
エクセルのマクロで別のシート...
-
エクセルの時刻のカウントが出...
-
平均変化率の信頼区間
-
エクセル 複数行ある同一商品...
-
エクセルの集計方法を教えて下さい
-
エクセル関数のSUMPRODUCTにつ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel2017 フィルタ昇順並びがA...
-
Excelで並び替え後にア行...
-
エクセルで行の高さ及び列幅の...
-
平均変化率の信頼区間
-
急ぎ!色のついたセルを非表示...
-
オートフィルタ後のデータから...
-
【Excel VBA】指定した行の最大...
-
エクセルの時刻のカウントが出...
-
基準日以前のデータを範囲を指...
-
EXCELで日付を比べ3か月以内の...
-
マクロで行の高さを設定したい
-
エクセル関数について
-
文字列を比較し、相違するフォ...
-
エクセル関数について
-
excel / ピポッド 日数を出したい
-
エクセル VBA 行間隔を飛ばした...
-
時間の重複チェック
-
プルダウンに【なし、平均、デ...
-
EXCEL 最終行のデータを他のセ...
-
列と行の名前(重複あり)が交...
おすすめ情報
みなさんいろいろありがとうございます。
この機能はよく使うので、基礎的なことで確認したいことがあります。
全部確認したいのであとで全部確認してお礼を書きます。
取り急ぎ、全体のお礼のコメントだけ記載しておきます。
いろいろありがとうございます。