![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
VBScriptのファイルから、Excelファイル内に作成したFunctionを呼び出し、データの表示や改ページなどを行わせようとしています。
しかし、この改ページの処理である、
ActiveSheet.Rows(row).PageBreak = xlPageBreakManual
と記述した部分で以下のようなエラーが発生してしまいます。
実行時エラー '1004':
Range クラスの PageBreak プロパティを設定できません。
row は Long の変数で、108や205といった改行したい行の値が入ります。
不思議なことに、VBScriptファイルから呼び出した場合はエラーとなるのですが、エラーメッセージ内のデバッグボタンを押してデバッグウィンドウを表示し、『何も手を加えず』にステップインなどで処理を継続させると、エラーにならずに進んでしまいます。
何が原因であり、どのように対処すべきなのか見当もつきません。
どなたかご存じないでしょうか?
No.1ベストアンサー
- 回答日時:
こんにちは。
コードの一部だけ見せられても手掛りが少なすぎて、何とも言い難いのですが^^;
んーー。。
> 実行時エラー '1004':Range クラスの PageBreak プロパティを...
実行時エラーですよね...変数 row に適切な値が代入されてないのでは?
> ActiveSheet.Rows(row).PageBreak = xlPageBreakManual
の前に Debug.Print 等を使ってエラー時の内容をチェックしてみては?
# row は予約語なので変数名に使うのは止めといた方が良いですよ。
または、この箇所が実行されるとき、ActiveSheet が何なのかは一応確認
して下さい。例えば、グラフシートが ActiveSheet の場合は当然失敗
しますよね。
とりあえず、テスト用の Excel VBA と VBS を用意して、実験してみました
が特に問題なく動いているように見えます。再現しませんね...何だろ?
' // Excel 標準モジュール Function +++++++++++++++++++++++++++
' // ファイル名 C:\test.xls
Public Function SampleFunc(ByVal DummyArg As Long) As Long
On Error GoTo Err_Handler
' // add pagebreaks
Dim i As Long
For i = 2 To 10
Worksheets(1).Rows(i).PageBreak = xlPageBreakManual
Next
SampleFunc = 1
Exit Function
Err_Handler:
SampleFunc = 0
End Function
' // VBS 側+++++++++++++++++++++++++++++++++++++++++++++++++++
Dim xlApp, xlWb, lRet
Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = True
Set xlWb = xlApp.Workbooks.Open("C:\test.xls")
' // 1は関数とあったのでダミー引数を設けただけで特に意味はなし
lRet = xlApp.Run("SampleFunc",1)
MsgBox "戻り値:=" & Cstr(lRet)
回答ありがとうございます。
>コードの一部だけ見せられても手掛りが少なすぎて、何とも言い難いのですが^^;
申し訳ないです。
それなりに量のあるソースになってまして、一部だけ切り出そうにもどこまで必要かがわからない状態なのです。
私が作ったのものならば、それもできたのですが……。
># row は予約語なので変数名に使うのは止めといた方が良いですよ。
ご指摘ありがとうございます。気をつけます。
変数rowの値やActiveSheetが何なのかもチェックしましたが、意図した値が入っていました。グラフシートでもありません。
なにより、質問時にも書きましたが、デバッグウィンドウ上ではエラーとならずに、問題の記述も通ってしまうのが理解できません。
出来上がったExcelファイルは意図したとおりの結果となるので、基本的に間違っていないのではと思い、ならばなぜエラーになるのか……。
書いていただいたコードは正しく動きました。
やはり、そこに至るまでのコードに問題があるのでしょうね。
どうしたものか……。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) エクセルVBA(実行時エラー438)の対処法を教えてもらえないでしょうか 3 2023/04/22 13:43
- Visual Basic(VBA) VBA 参照先で選んだファイルをコピーし、出力先に別名で保存したい 8 2022/05/13 20:37
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
- Visual Basic(VBA) VBAが止まります。 2 2022/09/02 14:02
- Visual Basic(VBA) vbaのエラー対応(実行時エラー7:メモリが不足しています) 4 2023/04/24 00:20
- Visual Basic(VBA) vbaのvlookup関数エラー原因を教えていただけないでしょうか。 3 2022/04/25 16:16
- オープンソース Excelファイルをデバッグしたい 4 2022/09/15 10:16
- Visual Basic(VBA) 動かなくなってしまった古いVBAを動くようにしたい 8 2022/09/20 13:57
- その他(プログラミング・Web制作) pythonでクラスで複数のメソッドを利用する方法 2 2022/04/15 04:17
このQ&Aを見た人はこんなQ&Aも見ています
-
「どうして捨てられないの?」前妻の物を捨てられない男性の心理って?
前妻の物を捨てられない理由に加え、捨てるための手段はあるのかを専門家に聞いてみた!
-
PageBreak プロパティを設定できません。
Visual Basic(VBA)
-
ExcelVBA 改ページの横破線を消す方法
Excel(エクセル)
-
Excel 改ページのVBAうまくいかないです
Excel(エクセル)
-
-
4
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
5
VBAの改ページ設定について
Visual Basic(VBA)
-
6
Excelのマクロで実行時エラー”1004”を解決するには?
その他(データベース)
-
7
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
8
EXCELで特定のセルに表示された項目をヘッダーやフッターに出力するには
Excel(エクセル)
-
9
エクセルでエラーが出て困っています。
Excel(エクセル)
-
10
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
11
【Excel】マクロでページを追加することはできますか?
Excel(エクセル)
-
12
PageBreaks.Countと印刷範囲の設定について
Visual Basic(VBA)
-
13
アクセスVBAで既に開いているエクセルを閉じたい
Yahoo!ショッピング
-
14
ExcelでVBAを使用した際に、『パス名が無効です』とエラーになります。
Excel(エクセル)
-
15
VBA シートをコピーする際に Copyメソッドは失敗しましたのエラーが出てしまいます
Visual Basic(VBA)
-
16
エクセルで同じ大きさ、同じ倍率、同じ余白なのにプレビューが違います。なぜ?
Excel(エクセル)
-
17
Excelで・・・1ページあたりの行数を指定できますか?
Excel(エクセル)
-
18
エクセルVBAでコピーすると行の高さが低くなる
Excel(エクセル)
-
19
エクセルvbaでの図形のカット(コピー)ペーストについて
Excel(エクセル)
-
20
【Excel VBA】CSV取込時、数字の先頭の0を消えないようにするには?
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
実行時エラー 438になった時の...
-
VBAがブレークモードになっ...
-
マクロについて教えてください...
-
実行時エラー3001「引数が間違...
-
Outlook.ApplicationをCreateOb...
-
なぜこんな初歩的なVBAのIf文で...
-
VBSで変数の宣言はできないので...
-
エクセルエラー13型が一致しま...
-
【Excel VBA】マクロをボタンに...
-
VBS実行時エラー オブジェクト...
-
ExcelVBA Range クラスの Page...
-
ASP.NET OleDbConnectionが定義...
-
エクセルVBAで以下のようなコー...
-
VBAのコードがエラーになっ...
-
デバッグ時はOK、デバッグ無し...
-
ADODB.Streamを使用してUTF-8を...
-
C言語 mallocのエラーに関する質問
-
VB6+SQL サーバー 2000 で 実行...
-
エラー1004 PDFの保存ができま...
-
VBAのエラー発生場所をメッセー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
実行時エラー 438になった時の...
-
エクセルエラー13型が一致しま...
-
【Excel VBA】マクロをボタンに...
-
実行時エラー -'-2147417848
-
マクロについて教えてください...
-
VBAがブレークモードになっ...
-
なぜこんな初歩的なVBAのIf文で...
-
実行時エラー3001「引数が間違...
-
OLEDB.NETで接続できない
-
ExcelVBA Range クラスの Page...
-
EXCEL VBAマクロ中断でデバッグ...
-
ADODB.Streamを使用してUTF-8を...
-
VBS実行時エラー オブジェクト...
-
Outlook.ApplicationをCreateOb...
-
VBSで変数の宣言はできないので...
-
なぜエラーになるのでしょうか...
-
VB6+SQL サーバー 2000 で 実行...
-
VBAでのエラー
-
Application.ActiveInspectorで...
-
Excelで下記のようにマクロを作...
おすすめ情報