
以下のコードを順番に使って、InputBoxに入力した複数桁の番号を、フォルダ内のPDF名から近いものを開いて表示させています。
しかし何も入力していない状態で、キャンセルボタンを押すとフォルダ内のPDFがたくさん開いてしまい困っています。
InputBoxの右上の×を押しても同様です。
キャンセルボタンを押したらファイル自体を閉じれるようにしたいです。
できればInputBoxの右上の×を押した場合はInputBoxだけ閉じたいです。
宜しくお願いいたします。
Sub 入力()
Dim ans As String
flg = False
Do
ans = InputBox("検索したい番号を入力してください", "番号入力")
If StrPtr(ans) = 0 Then Exit Sub
If IsNumeric(ans) Then flg = True
Loop Until flg = True
If ans <> "" Then
Range("A1").Value = ans
End If
End Sub
Sub PDFを開く()
Dim MyPath As String
Dim f As Object
MyPath = "C:\○○○\×××\Desktop\番号管理"
With CreateObject("Scripting.FileSystemObject")
For Each f In .GetFolder(MyPath).Files
If InStr(f, Range("A1").Value) >= 1 Then
CreateObject("Shell.Application").ShellExecute f
End If
Next f
End With
End Sub
No.1ベストアンサー
- 回答日時:
InputBox をApplication.InputBoxにしてみたら・・
ans = Application.InputBox(prompt:="番号入力", _
Title:="検索したい番号を数値入力で入力してください", _
Type:=1)
If TypeName(ans) = "Boolean" Then
xもここになりますけれど
MsgBox "キャンセル": Exit Sub
End If
>キャンセルボタンを押したらファイル自体を閉じれるようにしたいです。
できればInputBoxの右上の×を押した場合はInputBoxだけ閉じたいです。
自前のUserFormを作る方が簡単?
OKボタン・キャンセルボタン・テキストボックス 設置
右上の×を押した場合
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = vbFormControlMenu Then
?.Close
とか・・・
No.3
- 回答日時:
こんばんは
>キャンセルボタンを押すとフォルダ内のPDFがたくさん開いてしまい困っています。
ご提示のプロシージャは2つの別々のものなので、
「キャンセルボタンを押すとフォルダ内のPDFがたくさん開く」ようなことはないはずです。
それとも、これらを連続して実行するような、マスター的なマクロを実行しているということでしょうか?
(そもそも、一つの機能をなぜ二つに分けているのかも不明ですが・・)
「Sub 入力()」に関して言えば、キャンセルを押せばそれで終了するだけです。
(値を入力しても、PDFは開きません)
「Sub PDFを開く()」に関して言えば、A1セルが空白の状態で実行すると、全てのPDF(PDFに限りませんが)を開くようになっています。
どのようにして、こちらのプロシージャが実行されているのか不明なので、直接の対策は書きにくいですが・・・
ご質問のようなことの対策としては、無条件で実行せずにA1セルの値をチェックしてから実行するようにすれば良いのではないでしょうか?
ついでに言うなら、入力のプロシージャでも書き込むのみで、キャンセルの際のA1セルの値は成り行きになっていますので、こちらでもきちんと制御しておいた方が宜しいように思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
今、見られている記事はコレ!
-
弁護士が解説!あなたの声を行政に届ける「パブリックコメント」制度のすべて
社会に対する意見や不満、疑問。それを発信する場所は、SNSやブログ、そしてニュースサイトのコメント欄など多岐にわたる。教えて!gooでも「ヤフコメ民について」というタイトルのトピックがあり、この投稿の通り、...
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
-
なぜ批判コメントをするの?その心理と向き合い方をカウンセラーにきいた!
今や生活に必要不可欠となったインターネット。手軽に情報を得られるだけでなく、ネットを介したコミュニケーションも一般的となった。それと同時に顕在化しているのが、他者に対する辛らつな意見だ。ネットニュース...
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel-VBAでInputBox+Pulldown...
-
テキストボックスの番号を使っ...
-
初歩的な事だと思います。 Sub...
-
エクセルVBA テキストボックス...
-
エディットボックスの入力制限...
-
ExcelVBAのユーザーフォームで...
-
フォームの入力項目に全角文字...
-
DataGridViewの桁数制限に関して
-
数字以外の入力をエラーにする...
-
VBAでInputBoxの再入力をさせる...
-
EXCEL VBA で指定した範囲に入...
-
VBAのトグルボタンでのマクロに...
-
「イ分」・・・フンという文字...
-
DataGridView 列ごとの入力制限
-
ACCESS テキストボックスの入力...
-
VBAのユーザーフォーム上で名簿...
-
【VBA】入力フォームを使った、...
-
複数行の入力を受け取る方法
-
TextBoxから数字が文字...
-
accessで該当するレコードがな...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBA テキストボックス...
-
初歩的な事だと思います。 Sub...
-
テキストボックスの番号を使っ...
-
数字以外の入力をエラーにする...
-
EXCEL VBA で指定した範囲に入...
-
Excel-VBAでInputBox+Pulldown...
-
教えて!全角文字「μ」の半角
-
VBAでInputBoxの再入力をさせる...
-
入力フォームの値をQRコードで...
-
アクセスのマクロ
-
エディットボックスの入力制限...
-
accessで該当するレコードがな...
-
DataGridViewの桁数制限に関して
-
HTMLで全角文字のみ入力するに...
-
TextBoxから数字が文字...
-
ExcelVBAのユーザーフォームで...
-
VBA R1C1形式で変数の入力について
-
DataGridView 列ごとの入力制限
-
excel vba でユーザーフォーム...
-
「イ分」・・・フンという文字...
おすすめ情報