こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

エクセルVBA 連続してメッセージで判断

二回連続でメッセージボックスで判断させて印刷をするコードを教えていただけるでしょうか。
大雑把な流れとしては、2つのファイル(Aファイル、Bファイル)
の印刷をどちらもメッセージで判断してもらうようにするものです。

1.「Aファイルを印刷しますか?」
(Yes)Aファイル.xlsの印刷→続いて2.に移る
(No)次のメッセージに移る

2.「Bファイルを印刷しますか?」
(Yes)Bファイル.xlsの印刷→印刷後終了
(No.)終了

こういうものです。
印刷対象のファイルはコードを記述するファイルと同じフォルダに入っています。

Aファイルはシートはひとつですが、ファイルが複数あり、共通点として「卒業生」という文字の共通があり、これに該当するものをすべて印刷。

Bファイルはファイルはひとつですが、中のシートが複数あります。
その中の「平成19年度」シートのみを印刷。

こういう条件ですが、どなたかお教えいただけないでしょうか。よろしくお願いします。

投稿日時 - 2007-07-03 20:32:44

QNo.3136940

すぐに回答ほしいです

質問者が選んだベストアンサー

#1です。

> 質問のようなファイルの条件でコードの表現を...

条件そのものを理解出来てない部分があります。
また、もし最初からまる投げのつもりなら、それはどうかと思うところもあります。

例えば、前回フォルダ内の一覧に関して回答しましたが Aファイルは殆どその応用で良いと思います。
セルに書き出す代わりに Open して Printout すれば良いのです。
ファイル名に「卒業生」を含む物だけが対象ならば、InStr 等で判断出来ると思います。

Bファイルについては、マクロ記録を録って、フルパス部分の一部を 前回答のように Thisworkbook.path で置き換えてやればOKな気がします。
マクロ記録は融通が利きませんが、少し書き換え出来るようになれば結構役に立つ物になりますよ。

色々試して上手く行かないようなら、少しまとを絞って質問してみて下さい。

投稿日時 - 2007-07-03 23:00:40

お礼

ご回答ありがとうございました。もう少し勉強が必要なようです。お付き合いいただきありがとうございました。

投稿日時 - 2007-07-07 12:28:55

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

単純に IF を並べるだけで良いと思いますけど、、、

Sub Test()
Dim myMSG As String

myMSG = "Aファイルを印刷します。" & vbCrLf & "よろしいですか?"
If MsgBox(myMSG, vbYesNo + vbQuestion, "印刷") = vbYes Then
  'ここに処理
  MsgBox "Yesが押された"
End If

myMSG = "Bファイルを印刷します。" & vbCrLf & "よろしいですか?"
If MsgBox(myMSG, vbYesNo + vbQuestion, "印刷") = vbYes Then
  'ここに処理
  MsgBox "Yesが押された"
End If

End Sub

投稿日時 - 2007-07-03 20:58:31

お礼

いつもありがとうございます。「ぜんぜん成長しないやつだな」と思われてそうで、恐縮しています。
恐縮ついでと言っては何ですが、質問のようなファイルの条件でコードの表現を教えていただけると幸いです。

投稿日時 - 2007-07-03 21:15:55

あなたにオススメの質問