![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
WindowsXP、Excel2003の環境でマクロ実行時のエラーについて解決法を教えてください。
先日http://okwave.jp/qa5089017.htmlにて、
下記のとおりマクロを教えていただいたものです。
Sub 行の高さの自動調整()
'行の高さの自動調整
Cells.EntireRow.AutoFit
'行を大きくするための倍率
BAIRITU = 1.5
'最終行の指定
MAXGYO = 300
'1行目から最終行目までを順番にチェックするために「IX」変数を使用する。
IX = 1
'IXが最終行以下の場合、この処理を続ける。
Do While IX <= MAXGYO
Rows(IX).RowHeight = Rows(IX).RowHeight * BAIRITU
IX = IX + 1
Loop
End Sub
1回目は正常にマクロを実行することができましたが、
内容を改め再度マクロを実行したところ
「実行時エラー ’1004’
RangeクラスのRowHeightプロパティを設定できません」
とエラーが出ます。
デバックをクリックすると
「Rows(IX).RowHeight = Rows(IX).RowHeight * BAIRITU」
の行がマーカーにて指摘されますがどうすべきかわかりません。
マクロの実行前に、
対象範囲についてセルの保護や結合がないかを確認しましたが、
いずれもありませんでした。
解決法をご教示ください。
よろしくお願いします。
No.3ベストアンサー
- 回答日時:
行の高さの制限を超えているのでは?
Excel2003の行の高さは仕様で409ポイントまでとなっています。
■Excel の行の高さと列の幅の制限
http://office.microsoft.com/ja-jp/excel/HA101375 …
下記のコードは、
計算した行高がExcel2003の行高の最大値(409ポイント)を超える場合は、
行高を最大値キッカリに設定します。
また、
'MsgBox IX & "行目 : 最大値に設定します"
の先頭の ' を削除すれば、そのような場合に通知します。
'=====================↓ ココカラ ↓=====================
Sub 行の高さの自動調整_改()
'行の高さの自動調整
Cells.EntireRow.AutoFit
'行を大きくするための倍率
BAIRITU = 1.5
'最終行の指定
MAXGYO = 300
'1行目から最終行目までを順番にチェックするために「IX」変数を使用する。
IX = 1
'IXが最終行以下の場合、この処理を続ける。
Do While IX <= MAXGYO
If Rows(IX).RowHeight * BAIRITU <= 409 Then
Rows(IX).RowHeight = Rows(IX).RowHeight * BAIRITU
Else
'MsgBox IX & "行目 : 最大値に設定します"
'計算上の行高が最大値より大きければ最大値にする
Rows(IX).RowHeight = 409
End If
IX = IX + 1
Loop
End Sub
'=====================↑ ココマデ ↑=====================
ご参考まで。
![「エクセル2003でマクロをおこないました」の回答画像3](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/d/18137985_5497dfb07b528/M.jpg)
なるほど!
データ量が大きすぎるセルが一部あり、
そこでうまく処理できず(制限を越えていたために)
詰まっていたのかもしれません。
いただいたコードに書き直したところ、問題なく作業が進みました。
ありがとうございました。
No.2
- 回答日時:
>対象範囲についてセルの保護や結合がないかを確認しましたが、いずれもありませんでした。
「セルの保護がない」とはロックのチェックをはずしているという意味ではないですよね。
「シートの保護」をしていないとの意味ですよね。
「シートの保護」の時に「行の書式設定」にチェックしていないと行の高さは変えられないと思います。
この回答への補足
言葉足らずでした。
セルの保護についてはセルのプロパティからロックを外しました。
それとは別に、シートの保護については設定しておらず、したがって保護されていない状態です。
No.1
- 回答日時:
MAXGYO = 300
IX = 1
この2つ、どういじりました?
また、外の行を修正したりはしてませんか?
多分、引数IXが想定範囲外になったためのエラーではないかと。
この回答への補足
ありがとうございました。
初めに先日の回答者様に書いていただいたものをコピペしたものを使いました。
そのとき、
MAXGYO=100
については私のデータの行数を入力せよとのご指示でしたので
MAXGYO=300
に書き換えました。
他の行に関しては修正はしておりません。
IX = 1
はこのままです。
一度はエラーも無く実行できたはず(・・・正常に完了したのは初めの1回だけだったので、エラーが連発されるうちにどうだったか自信がなくなってきました)なのですが・・・
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
- Visual Basic(VBA) Excelで下記のようにマクロを作ったところ、一回目は実行できたのですが、二回目以降「実行時エラー1 1 2022/03/25 08:08
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/03 12:30
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/26 13:19
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/01/11 08:33
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/12/26 12:05
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/03/08 09:08
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/10/13 08:41
- Visual Basic(VBA) エクセルのマクロについて教えてください。 5 2023/07/05 09:30
- Visual Basic(VBA) エクセルのマクロとシートの保護について教えてください。 1 2022/10/18 08:36
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelでセル内の数式は残し値だ...
-
条件に応じて特定の行を非表示...
-
条件A→MSGBOX 条件B→マクロ実行
-
EXCELの並び替えについて
-
マクロの作成について
-
順序立てて行う必要のある作業...
-
EXCELでセルの結合
-
「マクロ」の足し算の式を教え...
-
マクロ オートフィルタ機能に...
-
Excelで連続印刷をするマクロ
-
オートフィルタで抽出後、マク...
-
エクセルマクロの行非表示及び挿入
-
エクセル 文字列を分割するマ...
-
Excelで金銭出納帳。繰越残高を...
-
エクセルVBAでパスの¥マークに...
-
エクセルの複数シートの保護を...
-
複数シートの平均を算出し平均...
-
前の(左隣の)シートを連続参...
-
エクセルで「Ctrl+F11」は何の...
-
EXCELで同一フォーマットのシー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
条件に応じて特定の行を非表示...
-
Excel2007で、太字にした行のみ...
-
Excelで連続印刷をするマクロ
-
Excelでセル内の数式は残し値だ...
-
「マクロ」の足し算の式を教え...
-
エクセル VBA 小数点を含む数字...
-
エクセルで全ての数字間にカン...
-
Excel(VBA)データ入力に応じて...
-
wordのvbaでハイパーリンク設定...
-
Excel にて非表示行を探すワー...
-
Excel2007 セルを右方向に削除...
-
エクセル2003でマクロをおこな...
-
エクセルで、行ごとの並び替え...
-
値貼り付けをしても書式も貼り...
-
VBA コピーを有効行までループ...
-
yyyy/mm/ddの日付に一括変換す...
-
整数行を残し小数点の行を削除...
-
エクセルで行と列を入れ替えキ...
-
エクセルで特定の数字となる組...
-
エクセルで連番をマクロで
おすすめ情報