- ベストアンサー
EXCEL VBA初心者によるメッセージボックスの使用について
- EXCEL VBA初心者がメッセージボックス vbYesNoCancelの使い方について質問しています。具体的には、はいの場合は通常使うプリンタで印刷し、いいえの場合はファイル名を指定して保存したいとしています。また、キャンセルの場合はマクロの実行をキャンセルするだけです。
- 質問者はWindows XPとEXCEL 2003を使用しており、具体的なコードを提示しました。しかし、ファイルを保存する場合の処理についてはわからないとしています。
- 質問の結論として、質問者はEXCEL VBA初心者であり、メッセージボックス vbYesNoCancelの使い方について困っていることが分かります。具体的な処理を知りたいとしています。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (5)
- Cor_moriyan
- ベストアンサー率41% (92/221)
- Cor_moriyan
- ベストアンサー率41% (92/221)
- Cor_moriyan
- ベストアンサー率41% (92/221)
- keithin
- ベストアンサー率66% (5278/7940)
- Cor_moriyan
- ベストアンサー率41% (92/221)
関連するQ&A
- Accessフォームで更新確認
ACCESSで管理台帳を作成しています。 不用意なデータ上書きがないよう下記のようなプロシージャで確認を行っています。 Private Sub 更新確認() Dim ret, cancel Beep ret = MsgBox("変更内容を保存しますか?", vbYesNoCancel + vbQuestion, "現レコード更新保存") Select Case ret Case vbYes Case vbNo Me.Undo Case vbCancel cancel = True End Select End Sub このプロシージャはBeforeUpdateで動作させています。 メインフォームではうまく動作するのですが、サブフォーム(帳票形式)に記載すると 値が変わらなくても違うセル(レコード)を選択すると動作してしまいます。 なにかうまく動作させられないでしょうか? ご教授お願いします
- 締切済み
- その他(データベース)
- エクセル2007 メッセージボックスについて教えて下さい
セルA1に"1"が入れば"b10~m60"を印刷(1ページ分)、 同様に、"2"が入れば"b61~m110"(2ページ分)、"3"が入れば"b111~m160"(2ページ分)を印刷する マクロボタンがあります。 現在、印刷を実行する前にメッセージボックスで「印刷します」→「OK」「キャンセル」の確認をしていますが このメッセージに、セルA1に入れた数値で確認したいのですができるでしょうか?? 例)セルA1="1"→MsgBox「1ページ印刷します」 セルA1="2"→MsgBox「2ページ印刷します」 分かりづらい説明で申し訳ありません。よろしくお願いします。 ↓現在の記述↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ Sub test() If MsgBox("印刷します", vbOKCancel) = vbCancel Then Exit Sub End If Select Case Range("a1").Value Case "1" ActiveSheet.PageSetup.PrintArea = "b10:m60" ActiveWindow.SelectedSheets.PrintOut Copies:=1 Case "2" ActiveSheet.PageSetup.PrintArea = "b61:m110" ActiveWindow.SelectedSheets.PrintOut Copies:=1 Case "3" ActiveSheet.PageSetup.PrintArea = "b111:m160" ActiveWindow.SelectedSheets.PrintOut Copies:=1 End Select End Sub
- ベストアンサー
- オフィス系ソフト
- VBAエクセルにて印刷
こんにちわ。教えてください。VBAでActiveXコントロールをクリック したのち、印刷のプレビューを表示したら、MegBoxメッセージを表示 させ ”はい””いいえ”を選択したいのですがうまくいきません。 ちなみに下記のプログラムです。 Private Sub 印刷_Click() ActiveWindow.SelectedSheets.PrintPreview Dim ans As Integer ans = MsgBox("印刷しますか?", vbInformation + vbYesNo, "確 認") Select Case ans Case vbYes Application.ActivePrinter = "Canon iR C3080/C3580 LIPSLX on Ne05:" ExecuteExcel4Macro "PRINT(2,1,1,1,,,,,,,,2,,,TRUE,,FALSE)" Case vbNo MsgBox "故障履歴印刷をキャンセルします。" End Select End Sub 以上なんですがプレビュー後に”印刷しますが”が聞いてきません。 どうすればいいですか?
- 締切済み
- オフィス系ソフト
- エクセルVBA実行後にファイルを自動で閉じるVBA
Sub 印刷() ' ' Macro1 Macro ' マクロ記録日 : 201X/X/X ユーザー名 : AAAA ' ' If MsgBox("実行する場合はOK、間違ってこのボタンをクリックした場合はキャンセルをクリックしてください。(日付確認後、印刷のこと。)", vbOKCancel) = vbCancel Then End End If 'A印刷 ChDir "L:\フォルダB\X\新規" Workbooks.Open Filename:="L:\フォルダB\X\新規\記録表\工程分析.xls" Sheets("毎日印刷").Select ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True Sheets("月曜日印刷").Select ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True Sheets("火曜日印刷").Select ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True Sheets("水曜日印刷").Select ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True Sheets("木曜日印刷").Select ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True Sheets("金曜日印刷").Select ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True Sheets("土曜日印刷").Select ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True Sheets("日曜日印刷").Select ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True ActiveWorkbook.Save ActiveWindow.Close あるエクセルファイルのボタンに上記のVBAが記入されています。 そのボタンを押すと「工程分析.xls」ファイルを呼び出し各シートを自動印刷して保存して閉じるVBAです。 質問ですがボタンの配置されたあるエクセルファイルの上記VBAの処理を全て完了した後に上書き保存を自動で実行し、自動であるエクセルファイルを閉じるVBAはどの様に追加すれば良いでしょうか?
- ベストアンサー
- Excel(エクセル)
- シートのマクロについて
sheet1 をアクティブすると下記のマクロが実行されるようにしたのですが なかなかうまくいきません。 どなたか教えて下さい。 Sub クリア() Dim ans As Integer ans = MsgBox("全てクリアをしてもいいですか?", _ vbYesNoCancel + vbInformation, "クリア実行") Select Case ans Case vbYes Sheets("sheet1").Select Range("B4:W43,Z4:Z43,AA4:AA43").Select Selection.ClearContents Range("B4").Select Sheets("sheet1").Select Case vbNo MsgBox "NO" Case Else MsgBox "中止します" End Select End Sub
- ベストアンサー
- オフィス系ソフト
- 【Excel】BeforeCloseを毎回呼び出すには?
終了時に独自で保存をしたいのですが、 下記のコードだと1回目でキャンセルすると 2回目以降の呼び出し時に全く実行されません。 どこか悪いのかご教示ください。 また、もしご存じであれば BeforeClose() と Auto_Close() の違い ThisWorkbook と Me の違い を教えてください。 よろしくお願いいたします。 Private Sub Workbook_BeforeClose(Cancel As Boolean) Dim iAns As VbMsgBoxResult iAns = MsgBox("'" & Me.Name & "' への変更を保存しますか?") Select Case iAns Case vbYes Call WriteFile ThisWorkbook.Close savechanges:=False Case vbNo ThisWorkbook.Close savechanges:=False Case vbCancel Cancel = True End Select End Sub
- ベストアンサー
- その他MS Office製品
- IFの使い方
Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim ANS As Integer ANS = MsgBox("Aをクリアしてもいいですか?", _ vbYesNoCancel + vbInformation, "クリア実行") If Sheets("A").Range("6D").Value <> "" Then Select Case ANS Case vbYes Sheets("営業確認").Range("b6:e1000,g6:k1000").Select Selection.ClearContents Sheets("入力").Select MsgBox "クリアしました" Case vbNo MsgBox "キャンセル" Case Else MsgBox "中止します" End Select Else End If End Sub 説明 (1)『A』というシートのセル『D6』に値が残っていれば メッセージボックスを出す。 (2)メッセージボックスはyes,no,cancelボタンがある (3)YESなら指定したセルの値を消す (4)NOなら消さない (5)キャンセルなら(3)、(4)以外 (6)『A』の『D6』に値がなければメッセージは出ない 上記のようにマクロを組みましたが、IFの所がエラーになってしまいます。
- ベストアンサー
- その他(プログラミング・開発)
- 指定する曜日の時に特定のエクセルファイルを印刷
Sub 印刷() ' ' Macro1 Macro ' マクロ記録日 : 201X/X/X ユーザー名 : AAAA ' ' If MsgBox("実行する場合はOK、間違ってこのボタンをクリックした場合はキャンセルをクリックしてください。(日付確認後、印刷のこと。)", vbOKCancel) = vbCancel Then End End If 'A印刷 ChDir "L:\フォルダB\X\新規" Workbooks.Open Filename:="L:\フォルダB\X\新規\記録表\工程分析.xls" Sheets("毎日印刷").Select ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True Sheets("月曜日印刷").Select ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True Sheets("火曜日印刷").Select ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True Sheets("水曜日印刷").Select ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True Sheets("木曜日印刷").Select ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True Sheets("金曜日印刷").Select ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True Sheets("土曜日印刷").Select ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True Sheets("日曜日印刷").Select ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True ActiveWorkbook.Save ActiveWindow.Close あるエクセルファイルのボタンに上記のVBAが記入されています。 そのボタンを押すと「工程分析.xls」ファイルの各シートを自動印刷して保存するVBAです。 ボタンが設置されているシートのK1には「TODAY()」の式が入っています。これは当日の日付を自動で表記する様になっています。 質問ですがボタンを押すと毎日印刷シート+K1に記入されている日付の曜日のシートのみを印刷するVBAはどの様にすれば良いでしょうか? 例えば今日(2016年9月10日)で言うと土曜日なのでボタンを押すと工程分析.xlsファイルの毎日印刷シート+土曜日印刷のみ出力されると言う事です。 明日(2016年9月11日)は日曜日なのでボタンを押すと工程分析.xlsファイルの毎日印刷シート+日曜日印刷シートのみが出力される形です。 よろしくお願いします。
- ベストアンサー
- Excel(エクセル)
- エクセでのプリンター選択・印刷・中止マクロについて
エクセルでプリンターを選択して印刷するマクロを下記で行っているのですが、プリンター選択ダイアログボックスでプリント中止のキャンセルボタンをクリックしてもキャンセルが有効とならず印刷されてしまいます。マクロ初心者で、どうしたらいいのか困っています。ご教授宜しくお願い致します。 Sub ネットカード印刷() Sheets("ネット入力").Select Application.Dialogs(xlDialogPrinterSetup).Show ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _ IgnorePrintAreas:=False Sheets("ネット入力").Select End Sub
- ベストアンサー
- Visual Basic
- マクロでネットワーク経由の印刷をしたいのですが
Excel2002を使用しています。2人の人間が各々のPCから 指定のプリンター(通常使うプリンターではない)で 印刷出来るようにしたいのですが、うまくいきません。 プリンターが接続されている「山田太郎」は印刷出来るのですが、 ネットワークを介している「田中花子」は、通常使うプリンターから 出力されてしまいます。 何が原因なのか、ご教授願います。 Sub 印刷確認() タイトル = "印刷確認" メッセージ = "今日の日付で印刷してよろしいですか?" スタイル = vbYesNo + vbQuestion + vbDefaultButton1 + vbApplicationModal yesno = MsgBox(メッセージ, スタイル, タイトル) If yesno = vbYes Then ユーザー名 = Application.UserName Select Case ユーザー名 Case "山田太郎" プリンター = "EPSON PM-840C on Ne03:" Case "田中花子" プリンター = "\\yamada\EPSON PM-840C on Ne0:5" End Select Application.ActivePrinter = プリンター ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= _ プリンター, Collate:=True ThisWorkbook.Worksheets("住所録").Select Range("A3:A10000").ClearContents End If Range("G14,I14").ClearContents Exit Sub End Sub
- ベストアンサー
- オフィス系ソフト
お礼
ありがとうございます!! 私の思うとおりにできました!!