• 締切済み

vba 初心者

Dim a As Integer Dim inbox As String Dim Localpath As Variant Dim c As Range, myFadd As String Dim flag As Variant Dim MyShell As Object Dim Mysh As String Dim newHour As Variant Dim newMinute As Variant Dim newSecond As Variant Dim waitTime As Variant Localpath = ThisWorkbook.Path a = 1 inbox = InputBox("番号") Do If inbox = Empty Then Exit Sub End If If inbox = Cells(a, 1) Then MsgBox ("あります") Exit Do Else a = a + 1 ElseIf Cells(a, 1) <> inbox Then MsgBox ("ない") End If Loop Set MyShell = CreateObject("WScript.Shell") MyShell.Run ("AcroRd32.exe /n") MyShell.Run ("AcroRd32.exe /p") & Localpath & "\" & Myfile & ".pdf" newHour = Hour(Now()) newMinute = Minute(Now()) newSecond = Second(Now()) + 10 waitTime = TimeSerial(newHour, newMinute, newSecond) Application.Wait waitTime Application.SendKeys "{Enter}", True '次の使用例は、10 秒を過ぎるとメッセージを表示します。 If Application.Wait(Now + TimeValue("0:00:10")) Then MsgBox "時間が過ぎました。" End If End Sub ExcelからPDFファイルを検索して印刷したいのですが、 見よう見まねで作ってみたもののエラーが出てしまってよく分かりません。 指摘できるところご指導よろしくお願いします。

みんなの回答

回答No.2

If inbox = Cells(a, 1) Then  MsgBox ("あります")  Exit Do Else  a = a + 1 ElseIf Cells(a, 1) <> inbox Then←ここ  MsgBox ("ない") End If このElseIfが怒られてますね。(当然なんですけど^^;) で、この部分って何がしたいんですか? 指摘したいのですが、やりたい事がさっぱりわかりません。。。 該当部分を削っても無限ループになるみたいだし。。。 (PS。このdo~loopをコメントアウトすれば正常に印刷されました。印刷部は正常のようです。)

nana1010
質問者

補足

A列にあらかじめデータをいれといて、inputoboxでそのデータがあるか判断して、もしあったらPDFファイル(inputboxに入れたデータ名)を開き印刷し、もしなかった場合はinputobox(最初から)戻るってかたちにしたいのですが・・・ 説明不足ですいません。よろしくお願いします。

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

> エラーが出てしまってよく分かりません。 どこ(何行目)で、どのようなエラーが発生するのか、を教えてください。

nana1010
質問者

補足

Do If inbox = Empty Then Exit Sub End If If inbox = Cells(a, 1) Then MsgBox ("あります") Exit Do Else a = a + 1 ←ここの部分でデバックが出てしまいます。 ElseIf Cells(a, 1) <> inbox Then MsgBox ("ない") End If Loop Set MyShell = CreateObject("WScript.Shell") MyShell.Run ("AcroRd32.exe /n") MyShell.Run ("AcroRd32.exe /p") & Localpath & "\" & Myfile & ".pdf"←ここのファイルの指定場所がいまいち分かりません A列にあらかじめデータをいれといて、inputoboxでそのデータがあるか判断して、もしあったらPDFファイル(inputboxに入れたデータ名)を開き印刷し、もしなかった場合はinputobox(最初から)戻るってかたちにしたいのですが・・・ファイルの指定場所もいまいち分からなくて困ってます。すいませんがよろしくお願いします。

関連するQ&A