済みません,質問が二つあります。
1.メインフォームから,BorderStyle = 1 のダイアログフォームを Modeless で開くのですが,このフォームを右上の[×]ボタンで閉じさせたくありません。[×]ボタンをクリックしても凹まないようにし(Disabled にし),さらに表示も淡色にする方法があれば,教えていただきたく存じます。
2.テキストボックスに入力された文字列が,ファイル名として有効かどうかを簡単に判定する方法はありますか? つまり,ファイル名に「\/:,…」などが使われていたら NG,しかしパス名で使われている分には OK といった判定が簡単にできるのでしょうか?
どうかよろしくお願いいたします。
No.4ベストアンサー
- 回答日時:
こんにちはmaruru01です。
1.について
単に[×]で閉じないようにするなら、FormのUnLoadイベントでCancelをTrueにしてやればよいと思います。
2.について
サンプルを作ってみました。ついでにファイル名が存在するかどうかのチェックもつけました。
No.3の方が言っているように、Open For InputまたはOutputでファイルを開いてみて、エラー値で判断します。
pathNameにファイル名(フルパス)を入れて、今回の質問では、-1が返ったら、ファイル名としては無効(不正なファイル名)ということになります。
参考になれば幸いです。
では。
'ファイルの存在チェック及び、不正ファイル名チェック
Public Function NGfileName(ByVal pathName As String) As Integer
Dim Num As Integer
NGfileName = 0
Err.Number = 0
On Error Resume Next
'inputモードでファイルの存在チェック
Num = FreeFile
Open pathName For Input As #Num
If Err.Number = 0 Then
NGfileName = 1 'ファイルが存在する
End If
Close #Num
If NGfileName = 1 Then Exit Function
Err.Clear
'outputモードで不正ファイル名チェック
Num = FreeFile
Open pathName For Output As #Num
If Err.Number <> 0 Then
NGfileName = -1 'ファイル名が不正
End If
Close #Num
If NGfileName = 0 Then Kill pathName
Err.Clear
End Function
この度は,ご回答ありがとうございました。
> 参考になれば幸いです。
参考どころか,このまま使えます。これで2.の問題も解決いたしました。本当にありがとうございます。これからも,どうかよろしくお願いいたします。
No.3
- 回答日時:
1.
Goo(gle)等でサンプルがすぐ見つかります。
検索キー = "VB 閉じる ボタン 無効"
2.
Open for input を実行して、エラー番号で判断するとか
ご回答ありがとうございます。検索エンジンで直に検索するなんて,考えても見ませんでした。それにしても,非常にたくさんヒットするんですね。驚きました。
http://homepage1.nifty.com/Wan/vbtips/vbt_conten …
1.については,こちらの URL にあるサンプルプログラムが大変役に立ち,1.については解決いたしました。
この度はありがとうございました。
No.1
- 回答日時:
こんにちは。
まずは 1.ですが、フォームの ControlBox プロパティを使用すれば簡単に×ボタ
ンを非表示にすることはできます。但し、他の最大化、最小化ボタンも消えてしま
いますが...
2.ですがちょっとサンプルを作ってみました。
これは Asc関数で文字コードをチェックして英数字のみ値を戻します。
(ファイル名の場合は、"-"や"_"とかはOKだと思うので条件に入れ
てあります。ASCIIコードで 45,95)
その他に条件追加があればSelect Case文に条件を追加してあげれば
いいと思います。(詳しくはAsciiコード表を参照してみて下さい。)
Function is_chrchk(inchr As String) As String
' 英数字以外のチェック
' 英数字の場合値をそのまま返す
' それ以外の記号は値を返さない
Select Case Asc(inchr)
Case 45, 95
is_chrchk = inchr
Case 1 To 47 'BAD
is_chrchk = ""
Case 48 To 57 'GOOD
is_chrchk = inchr
Case 58 To 64 'BAD
is_chrchk = ""
Case 65 To 90 'GOOD
is_chrchk = inchr
Case 91 To 96 'BAD
is_chrchk = ""
Case 97 To 122 'GOOD
is_chrchk = inchr
Case 123 To 125 'BAD
is_chrchk = ""
Case Else 'BAD
is_chrchk = ""
End Select
End Function
Private Sub Command1_Click()
'Text1に入力した文字から英数字以外の文字を取り除き
'その結果をLabel1に転記する
Dim in_filenm As String, out_filenm As String
Dim temp As String
in_filenm = Text1.Text
out_filenm = ""
If Len(in_filenm) = 0 Then
MsgBox "入力がありません。", 48
Exit Sub
End If
For i = 1 To Len(in_filenm)
temp = is_chrchk(Mid(in_filenm, i, 1))
If Len(temp) > 0 Then
out_filenm = out_filenm & temp
End If
Next i
Label1.Caption = out_filenm
End Sub
ご希望どおりではなかったかも知れませんが、
参考になればと思います。
がんばってみて下さい。
早速のご回答,大変ありがとうございました。ソースまで考えていただき,本当にありがとうございます。
条件分岐といえば,私は今まで,ほとんど If 文しか使ったことがありませんでしたが,Select Case って便利そうですね。範囲指定に To やカンマが使えるとは知りませんでした。勉強になりました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- Access(アクセス) capeofdragonと申します。 Access2016を使っております。 あるフォームがあり、テ 2 2022/09/09 13:18
- Access(アクセス) Access 登録ボタンからサブフォームの更新 1 2022/07/22 10:23
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- Access(アクセス) アクセス 意図せずサブプロシージャを移動してしまうのを止めたい 1 2022/09/02 09:19
- Visual Basic(VBA) tatsumaru77様 昨日回答して頂いたものです。 すみませんが、昨日の質問で1つ補足があります 1 2022/05/15 15:06
- JavaScript ラジオボタンによるフォームの開閉を行いたい 3 2022/03/31 21:30
- Access(アクセス) AccessVBAで降順にするテーブル作成クエリを使用して作成したテーブルを削除し同一のテーブル作成 1 2023/01/06 11:17
- Visual Basic(VBA) VBA 参照先で選んだファイルをコピーし、出力先に別名で保存したい 8 2022/05/13 20:37
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA シートのボタン名を変更し...
-
VBA(エクセル)で自動的にボタン...
-
ユーザーフォームに別シートか...
-
フォームの再読み込み
-
.NET(VB)でボタンの連打を防止...
-
VBAで多数のプログラムを一つの...
-
VBでのエラー音の消し方
-
ダウンロードダイアログをVB...
-
[Excel VBA]コマンドボタンの入...
-
C#で動的に作ったtextboxを消す。
-
セルをマクロのボタンにしたい。
-
C#プログラムで、ボタンをショ...
-
VB.net でトグルボタンを実現し...
-
ボタンの状態
-
Access VBA でデータペーストを...
-
vb.net タイマーに引数を渡す
-
エクセルVBAでユーザーフォーム...
-
コマンドボタンやイメージにマ...
-
他のアプリケーションとの連携
-
excel シート上のボタンが動かない
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA シートのボタン名を変更し...
-
VBA(エクセル)で自動的にボタン...
-
フォームの再読み込み
-
ユーザーフォームに別シートか...
-
VBA CommandButtonの文字ずれ
-
セルをマクロのボタンにしたい。
-
コマンドボタンやイメージにマ...
-
Excel VBA Application.caller...
-
VBAのボタンの位置が変わって困...
-
Access VBA でデータペーストを...
-
プロシージャからイベントをコ...
-
他のアプリケーションとの連携
-
閉じると「+」になり開くと「-...
-
C#で動的に作ったtextboxを消す。
-
ボタンをマウスで押し続けたと...
-
VBA でのボタンの移動について
-
ボタン
-
CommandButtonのCaptionを変化...
-
TextBoxでEnterキーを押すと、...
-
VB.net でトグルボタンを実現し...
おすすめ情報