- ベストアンサー
半角英数のFileのみ選択可能な方法
- EXCELでFile名を対象セルに入力する方法について教えていただきましたが、選択したファイルが半角英数のみであるようにする方法が分かりません。
- 現在作成中のプロシージャでは、ファイルを選択してセルに入力することはできますが、入力するファイル名を制限する方法がわかりません。
- IMEMode=xlIMEModeAlphaという方法があることは分かりましたが、どのように組み込むべきかわかりません。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
半角英数のみのファイルだけを一覧に表示させるのは非常に大変じゃないかな。 載せられたコードでファイルを選択した時に、 半角英数以外が含まれていた場合に、エラーメッセージを出して再度選択画面に戻すのなら 左程でもないと思います。 createobject("scripting.filesystemobject").getbasename("ファイルのフルパス") でファイル名部分だけが取り出せます。 このファイル名が半角か否かは(半角英数ではありません) lenb("A") = lenb(strconv("A",vbFromUnicode )) *2 なら True lenb("Aあ") = lenb(strconv("Aあ",vbFromUnicode )) *2 なら False のように判別できるかとおもいます。 半角英数なら Function HankakuEisuu(sArg As String) As Boolean '半角英数以外があればTrueを返す Dim oReg As Object Set oReg = CreateObject("VBScript.RegExp") With oReg .Pattern = "[^0-9a-z]" .IgnoreCase = True .Global = False End With HankakuEisuu = oReg.test(sArg) Set oReg = Nothing End Function エラーで戻されて再度選択だと使い勝手が良くありませんね。。。 自由にフォルダ間を行き来しつつ、かつ半角英数のみを表示したい場合は、 TreeView コントロールを使って頑張って作るしかないのでは。 もしかしたら、もっと良い解決方法があるかもしれませんけどね。 以下に素晴らしい例を載せてくださってる方がいらっしゃいました。 https://sites.google.com/site/compositiosystemae/home/vbaworld/extra/components/treeview
お礼
あれ?すみません!!19日夜に返信して、表示もされていたのですが、なぜか登録されていませんでした!!! お礼が遅くなってしまってごめんなさい。。。 なぜ・・・。他の方にも返信したコメントが後で見ると全く反映されていません。 OKwaveはまだ2回目なのですが、よくあるのでしょうか。。。ごめんなさい。 結果としては、教えて頂いた Function HankakuEisuu(sArg As String) As Boolean を参照して 1.ファイルを選択 2.半角英数でないとだめですMsgboxを表示 3.再度選択してもらう。 というものを作ることができました! TreeView コントロールというものもあるのですね。 まだVBA3日目なので、もう少し理解が深まったら チェックしようと思います。 お礼が随分遅くなってしまって本当に申し訳ありません。 ありがとうございました!