下記の様なマクロが有りますが、ここでファイル名のみ(拡張子無し)を
fairumeiに格納したいのですがどの様なコードを書いた方が良いのでしょうか。?
(ファイル名の長さは全部違います、エクセル2000)
どうか、宜しくお願いします。
Sub シート検索版()
Dim myPName As String
myPName = Application.GetOpenFilename("測定データ(*.xls;*.csv),*.xls;*.csv")
If myPName = "False" Then Exit Sub
Dim wb_New As Workbook
Set wb_New = Workbooks.Add
Dim myKAKUCHOSI As String
Dim myPATHNAME As String
Dim myLName As String
Dim fairumei As String
Dim wb As Workbook
On Error GoTo mfinish
fairumei = ここが分からない
myPATHNAME = CurDir
myLName = Dir(myPATHNAME & "\" & "*" & myKAKUCHOSI) 'パス及びファイル名拡張子付き
No.3ベストアンサー
- 回答日時:
こんばんは。
>ここでファイル名のみ(拡張子無し)をfairumeiに格納したい
ご質問のコードがさっぱり読めませんが、
単に、それだけで良いなら、難しいことを考えなくても、以下のようにすればよいだけなのですが。
'----------------------------------
Sub FileNameGet()
Dim myPName As String
Dim myLName As String
Dim fairumei As String
Dim fairumei2 As String
myPName = Application.GetOpenFilename("測定データ(*.xls;*.csv),*.xls;*.csv")
If myPName = "False" Then Exit Sub
'パス付き拡張子なし
myLName = Mid$(myPName, 1, InStrRev(myPName, ".") - 1)
'パスなし拡張子あり
fairumei = Mid$(myPName, InStrRev(myPName, "\") + 1)
'パスなし拡張子なし
fairumei2 = Mid$(myPName, InStrRev(myPName, "\") + 1, InStrRev(myPName, ".") - InStrRev(myPName, "\") - 1)
MsgBox "パス付き拡張子なし: " & myLName & vbCrLf & _
"パスなし拡張子あり: " & fairumei & vbCrLf & _
"パスなし拡張子なし: " & fairumei2 & vbCrLf
End Sub
No.2
- 回答日時:
変数宣言はなるべくまとめて置かれたほうが分かりやすいし間違いが無いと思います。
レスは手抜きです。整形して下さい。
また、変数の宣言を強制するようにした方が誤りが無いように思います
モジュールの先頭に、Option Explicit を追加(アップされて無いだけでしたらご容赦)
で、
Dim myPName As String
myPName = Application.GetOpenFilename("測定データ(*.xls;*.csv),*.xls;*.csv")
If myPName = "False" Then Exit Sub
Dim wb_New As Workbook
Set wb_New = Workbooks.Add
Dim myKAKUCHOSI As String
Dim myPATHNAME As String
Dim myLName As String
Dim fairumei As String
Dim wb As Workbook
'On Error GoTo mfinish
'-----------------------------------------追加
Dim fairuname As String
Dim objFso As Object
Set objFso = CreateObject("scripting.FilesystemObject")
fairumei = objFso.getbasename(myPName)
MsgBox fairumei
'-----------------------------------------追加ここまで
'これで拡張子抜きのファイル名が取得できると思います。
'拡張子が4桁でも2桁でも多分大丈夫かな?
'こんな意地悪なファイル名、あれれ.xlt.xls → あれれ.xlt がファイル名となります。
'WindowsXP Pro Sp2 + Excel 2002 Sp3 で検証
No.1
- 回答日時:
指定の文字で区切られている文字列を分解する関数「SPLIT」があります。
例はmyPName="C:\Test\File.txt" としますよ。
Dim strArrey() as string
Dim nArrey as long
strArrey() = split(myPName, ".")
nArrey=ubound(strArrey())
ここまでの結果で、nArrey=1です。
strArrey()は2個の要素を持ちます。
strArrey(0)="C:\Test\File"
strArrey(1)="txt"
myPNameが"C:\Test\File.csv.txt" だったら?
ご心配無く。nArrey=2です。
strArrey()は3個の要素を持ちます。
strArrey(0)="C:\Test\File"
strArrey(1)="csv"
strArrey(2)="txt"
つまりstrArrey(nArrey)に拡張子のみが入ります。
で、拡張子のみを何か変数に保存しておく。
同じこと(SPLIT)を"\"で行えば、配列strArrey()の最終要素がファイル名を指します。
あとは適当に調整してみてください。
あと、SPLITの逆はJOINです。こちらも研究してみてください。
replaceの代替になります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
好きなおでんの具材ドラフト会議しましょう
肌寒くなってきて、温かい食べ物がおいしい季節になってきましたね。 みなさんはおでんの具材でひとつ選ぶなら何にしますか? 1番好きなおでんの具材を教えてください。
-
家・車以外で、人生で一番奮発した買い物
どんなものにお金をかけるかは人それぞれの価値観ですが、 誰もが一度は清水の舞台から飛び降りる覚悟で、ちょっと贅沢な買い物をしたことがあるはず。
-
【お題】引っかけ問題(締め切り10月27日(日)23時)
【大喜利】 「日本で一番高い山は富士山……ですが!」から始まった、それは当てられるわけ無いだろ!と思ったクイズの問題
-
この人頭いいなと思ったエピソード
一緒にいたときに「この人頭いいな」と思ったエピソードを教えてください
-
ハマっている「お菓子」を教えて!
この世には、おいしいお菓子がありすぎて……。 次何を食べたらいいか迷っています。 みなさんが今、ハマっている「お菓子」を教えてください!
-
EXCEl/VBAで拡張子なしのファイルを開けない
Excel(エクセル)
-
コモンダイアログで拡張子の無いファイルのみ表示させたい。
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/12】 急に朝起こしてきた母親に言われた一言とは?
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・好きな「お肉」は?
- ・あなたは何にトキメキますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルvbaでdocuworksprinter...
-
Excel 相対パス
-
A列に記載されているフォルダ...
-
エクセルのマクロで特定フォル...
-
ExcelのVBAで上書き保存を確...
-
コマンドプロンプトのコピー関...
-
VBA★PDFをPDFアプリで印刷し...
-
【VBA】ExcelマクロでCSVファイ...
-
開いているファイルを削除し、...
-
エクセルVBAで一つ上の階層...
-
Accessで「ファイルを開く」ダ...
-
ショートファイルネーム→ロング...
-
xcopyコマンドの進行状況を表示...
-
C言語でフルパスのファイル読み...
-
fopenでのパス指定
-
【VB.NET】App.configにファイ...
-
C#であるフォルダを参照する
-
VBAでの共有パスにつきまして
-
ExcelVBAの使い方 ¥の使い方...
-
VBAでパワーシェルを実行したい...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルvbaでdocuworksprinter...
-
Excel 相対パス
-
エクセルVBAで一つ上の階層...
-
【VBA】ExcelマクロでCSVファイ...
-
xcopyコマンドの進行状況を表示...
-
コマンドプロンプトのコピー関...
-
エクセルのマクロで特定フォル...
-
VBA★PDFをPDFアプリで印刷し...
-
Eclipse
-
【VB.NET】App.configにファイ...
-
EXCEL(VBA)で指定フォルダ内の...
-
ExcelVBAの使い方 ¥の使い方...
-
C#でのProcess.Startと変数path
-
VBS パスに変数を入れたい
-
ExcelのVBAで上書き保存を確...
-
SaveAsの保存先について
-
VBAでパワーシェルを実行したい...
-
fopenでのパス指定
-
実行ファイルのパスを取得したい
-
パスワード保護されたExcelファ...
おすすめ情報