今、フロッピーにファイルを保存する為のマクロを創っているのですが
ワイルドカードの使い方を教えて下さい
ここから*****
Sub フロッピー保存()
'
'
Dim fNAME As String
fNAME = ActiveWorkbook.Name 'アクティブなブックのファイル名を取得
'ファイルが新規に作成された場合の処理(book1,book2等と成っている場合)
If fNAME = "Book*" Then
fNAME = Application.InputBox(prompt:="新規ファイルですね。ファイル名を入力して下さい", _
Title:="新規ファイル入力", Type:=2)
Else
ActiveWorkbook.Save
End If
'取得したファイル名でフロッピーディスクに保存
ActiveWorkbook.SaveAs Filename:="A:\"&fNAME, _
FileFormat:=xlNormal, _
Password:="",WriteResPassword:="",ReadOnlyRecommended:=False, _
CreateBackup:=False
End Sub
ここまで*****
>>'ファイルが新規に作成された場合の処理(book1,book2等と成っている場合)
>> If fNAME = "Book*" Then
この、If fNAME = "Book*" Then が有効に働いていないみたいなんです。
「ワイルドカード・・・* や ? はマクロではどの様な書式が正しいのでしょう
それと、エラー処理なんですが
InputBoxメソッドでキャンセルやファイル名を入力しないで「OK]が押された
場合の処理、又フロッピーが挿入されていなかった場合などの
エラー処理の対処法を教えて下さい
No.1ベストアンサー
- 回答日時:
VBAでは、文字列変数に対して、ワイルドカード検索をサポートしてませんので、
a)正規表現を使う。
b)複数の比較式に分解する。
――という手法を取ります。
a)の方は、VBScriptのヘルプを御覧下さい。
b)については、例えば、
If Instr(1, fName, "Book" ) = 1 Then
If Left( fName, 4 ) = "Book" Then
――が同じ比較になりますよね。
もっとも今回の場合、新規作成かどうかが知りたいのだから、
If ActiveWorkBook.Path = "" Then
――で問題ないかと。
エラー処理については、基本は、各処理の後で、Err.Numberが0でないかをチェックし、妥当な処理をする、というものになります。
まあ、実行時エラーのままで、デバッグモードに入る方が、下手なエラーハンドラよりよっぽど役立つ時もありますが。
>>VBAでは、文字列変数に対して、ワイルドカード検索をサポートしてませんので
そうなんですか!!
全く知りませんでした。恥ずかしい限りです。
>>a)正規表現を使う。
>>b)複数の比較式に分解する。
対処法まで書いて頂きありがとうございます
>>If ActiveWorkBook.Path = "" Then
新規作成の時はこのように記述するんですね・・
うまく動作しました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【VBA】印刷マクロのループ処理が反映されません 3 2022/08/09 02:15
- その他(プログラミング・Web制作) pythonでクラスで複数のメソッドを利用する方法 2 2022/04/15 04:17
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Excel(エクセル) エクセル2019でPDFファイル名に枝番号をつけたい。 アクティブワークシートを印刷した後の処理とし 4 2023/06/06 21:00
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
- Excel(エクセル) エクセルVBA、間違っているコード内容を正して頂けませんか? エクセルワークシートに納品書を作ったの 2 2023/08/02 21:13
- Visual Basic(VBA) VBA 参照先で選んだファイルをコピーし、出力先に別名で保存したい 8 2022/05/13 20:37
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/07/03 09:11
- Excel(エクセル) エクセルVBA、ファイル名をセルの値で保存の方法を教えてください。 おそれいります。こちらで数々のエ 6 2023/06/30 22:17
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
IF文に時間(何時から何時ま...
-
【C#/Java?】try-catchでcatch...
-
vbaのエラー対応(実行時エラー...
-
特定の名前のオートシェイプの...
-
UWSCのTHREADについて
-
どうやってもFor文を抜けてしま...
-
条件文でelseはつけるべき?
-
ドリブン??
-
private subモジュールを他のモ...
-
エラー時に処理を戻したい。
-
Excelマクロ処理の裏でWordを使...
-
どう増強すべきか
-
複数個のTextBoxでいずれかの内...
-
VBA For Each 〜 複数条件について
-
RaiseEventのメリット
-
ExcelのVBAで、選択したファイ...
-
EXCELマクロ実行中に
-
Functionで戻り値を複数返す方法
-
特定のファイルを他のプロセス...
-
Excel VBA セルの名前があるか...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【C#/Java?】try-catchでcatch...
-
private subモジュールを他のモ...
-
IF文に時間(何時から何時ま...
-
マクロで、次のコードへ行く前...
-
特定の名前のオートシェイプの...
-
シグナル 6(SIGABRT)とは?
-
特定のファイルを他のプロセス...
-
ExcelのVBAで、選択したファイ...
-
Excel VBA セルの名前があるか...
-
どう増強すべきか
-
Word VBA。各マクロの間に待ち...
-
【VBA】エラー処理で別プロシー...
-
UWSCのTHREADについて
-
シェルスクリプトでファイル内...
-
ドリブン??
-
Functionで戻り値を複数返す方法
-
iPhoneのニューラルエンジンっ...
-
エクセル VBAで複数セル選択時...
-
COBOL OCCURSで指定したデータ...
-
【Vb.net】プリンタジョブの取得
おすすめ情報