
VBA超初心者です。ヘルプだけで学習していますが、よくわかりません。印刷する時に、GT4かGU4の値が0の場合はエラーメッセージが出て終了し、いずれも0以外ならばその数値を印刷の開始と終了ページとして取得するプログラムを作ってみましたが、何度やってもうまくいかず、やむなく昔ベーシックで習ったGotoを使ってみました。
しかし、過去ログを見ると、Gotoは使わないほうが良いとの事。
この文でGotoをなくす方法をご教授下さい。お願いします。
Sub 印刷()
開始ページ = Range("GT4").Value
終了ページ = Range("GU4").Value
If Range("GT4") = 0 Then GoTo 10
If Range("GU4") = 0 Then GoTo 20
入力結果 = MsgBox((開始ページ) & "ページから" & (終了ページ) & "ページを印刷しますか?", vbYesNo)
If 入力結果 = vbYes Then
ActiveWindow.SelectedSheets.PrintOut From:=開始ページ, To:=終了ページ, Copies:=1, Collate _
:=True
GoTo 30
10: MsgBox ("未入力の項目があ~る!")
GoTo 30
20: MsgBox ("入力ミスがあります!")
30:
End If
End Sub
No.1ベストアンサー
- 回答日時:
Sub 印刷()
開始ページ = Range("GT4").Value
終了ページ = Range("GU4").Value
If Range("GT4") = 0 Then
MsgBox ("未入力の項目があ~る!")
ElseIf Range("GU4") = 0 Then
MsgBox ("入力ミスがあります!")
Else
入力結果 = MsgBox((開始ページ) & "ページから" & (終了ページ) & "ページを印刷しますか?", vbYesNo)
If 入力結果 = vbYes Then
ActiveWindow.SelectedSheets.PrintOut From:=開始ページ, To:=終了ページ, Copies:=1, Collate :=True
End If
End If
End Sub
ありがとう御座いました。これに近い物を書いてはいたんですが、
Else に対する If がないとか If に対する End がないとか
が出てきて困っていました。EndIf が2個必要だったのですね。
ありがとう御座いました。
No.4
- 回答日時:
エラー処理などでは、On error goto を使うのでそれほどこだわらなくて良いかとは思いますが、
簡単なのはフラグとループを使う方法です。(ここではフラグだけでよい)
Dim fContinue as boolean
fContinue = true
初期化
if Range("GT4") = 0 Then
MsgBox ("未入力の項目があ~る!")
fContinue = false
end if
if fContinue = true and Range("GU4") = 0 Then
MsgBox ("入力ミスがあります!")
fContinue = false
end if
if fContinue = true then
入力&印刷
end if
No.3
- 回答日時:
>何度やってもうまくいかず、やむなく昔ベーシックで習ったGotoを使ってみました。
IF文の使い方が理解できていれば簡単に回避できます。
Sub 印刷2()
開始ページ = Range("GT4").Value
終了ページ = Range("GU4").Value
If 開始ページ = 0 or 開始ページ = "" Then
MsgBox ("未入力の項目があ~る!")
ElseIf 終了ページ = 0 or 終了ページ = "" Then
MsgBox ("入力ミスがあります!")
Else
入力結果 = MsgBox((開始ページ) & "ページから" & (終了ページ) & _
"ページを印刷しますか?", vbYesNo)
If 入力結果 = vbYes Then
ActiveWindow.SelectedSheets.PrintOut _
From:=開始ページ, To:=終了ページ, Copies:=1, Collate:=True
End If
End If
End Sub

No.2
- 回答日時:
こんにちは。
Sub 印刷()
開始ページ = Range("GT4").Value
終了ページ = Range("GU4").Value
If Range("GT4") = 0 Then
MsgBox ("未入力の項目があ~る!")
Exit Sub
End If
If Range("GU4") = 0 Then
MsgBox ("入力ミスがあります!")
Exit Sub
End If
入力結果 = MsgBox((開始ページ) & "ページから" & (終了ページ) & "ページを印刷しますか?", vbYesNo)
If 入力結果 = vbYes Then
ActiveWindow.SelectedSheets.PrintOut From:=開始ページ, To:=終了ページ, Copies:=1, Collate _
:=True
End If
End Sub
でどうでしょうか。
すばやい回答有難う御座います。ExitSub も試してみましたが、その直後に EndIf をつけずにエラーになっていました。おかげで解決しました。有難うございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
今、見られている記事はコレ!
-
弁護士が解説!あなたの声を行政に届ける「パブリックコメント」制度のすべて
社会に対する意見や不満、疑問。それを発信する場所は、SNSやブログ、そしてニュースサイトのコメント欄など多岐にわたる。教えて!gooでも「ヤフコメ民について」というタイトルのトピックがあり、この投稿の通り、...
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
-
なぜ批判コメントをするの?その心理と向き合い方をカウンセラーにきいた!
今や生活に必要不可欠となったインターネット。手軽に情報を得られるだけでなく、ネットを介したコミュニケーションも一般的となった。それと同時に顕在化しているのが、他者に対する辛らつな意見だ。ネットニュース...
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
<IFRAME>でコンテンツ部分のみ...
-
エクセルVBAでマルチページの切...
-
スクロールバーの挙動がおかしい
-
パワーポイントで参照ページを...
-
HTMLでリンクが表示されないの...
-
アクセス解析。「直前に見てい...
-
TEX ページ番号について
-
アクティブレポートの、ページ...
-
検索結果を別ページのインライ...
-
VBAでマルチページのページ指定...
-
window.showModalDialogのペー...
-
ビルダー インラインフレーム...
-
カンマ区切り形式ではなく、セ...
-
ExcelのROUND関数を一括解除し...
-
直リンク禁止 hを抜くだけでOK?
-
Wordチェックボックス作り方(...
-
リンクを「張る」?「貼る」?
-
リファラーチェックって?
-
リンクって「貼る」?「張る」?
-
HTMLのリンク先が表示されない
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
パワーポイントで参照ページを...
-
<IFRAME>でコンテンツ部分のみ...
-
BookBlock.jsで左開きにする方法
-
エクセルVBAでマルチページの切...
-
VBAでマルチページのページ指定...
-
書かれているURLと飛んだ先のUR...
-
リンク先へジャンプしてもオン...
-
UserForm.showでマルチページ1...
-
ページの自動ジャンプを止めるには
-
リダイレクト前のURLをブックマ...
-
アクティブレポートの、ページ...
-
アクセス解析。「直前に見てい...
-
WEBページ切り替え、Power Poin...
-
ランダムに、リンクコードを貼...
-
VBAでWEBサーバー上に保存され...
-
フレーム内の別々のサイトの情...
-
HP制作に最低限必要な事・・・?
-
DreamWeaver8で作成したページ...
-
TEX ページ番号について
-
スクロールボックスを作成したい
おすすめ情報