![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
質問させてください。
以下のコードを使用していますが改良したいのです。
①現在はダイヤログが出てファイルを選択しています。
これを同じくダイヤログが出て、指定したフォルダー(C:\Users\○○○\Desktop\テストフォルダ\)
からファイル選択したい。
②取り込むテキストファイルのファイル名を取得してsheet1のセルB1に返したい。
(ファイル名が「000001.txt」だった場合、セルに「000001」と返したい)
②について、Dir関数を使うのでしょうか?
いろいろ調べてやってみたのですが、もうわからなくなりました。
申し訳ありませんが教えていただけませんでしょうか?
宜しくお願い致します。
Sub txt1()
Dim txtName As String
txtName = Application.GetOpenFilename("テキストファイル,*.txt")
If txtName <> "False" Then
Open txtName For Input As #1
End If
Dim r As Long
r = 1
Do Until EOF(1)
Dim buf As String
Line Input #1, buf
Dim aryLine As Variant
aryLine = Split(buf, ",")
Dim i As Long
For i = LBound(aryLine) To UBound(aryLine)
Cells(r, i + 1) = aryLine(i)
Next
r = r + 1
Loop
Close #1
End Sub
No.2ベストアンサー
- 回答日時:
ChDir CreateObject("WScript.Shell").SpecialFolders("Desktop")
を
ChDir "C:\Users\○○○\Desktop\テストフォルダ" など
String型でパスを指定します。
No.1
- 回答日時:
こんにちは、
>以下のコードを使用していますが改良したいのです。
①
カレントディレクトリを変更してSpecialFolders("Desktop")を使います。
Dim OldPath As String, txtName As String
OldPath = CurDir
ChDir CreateObject("WScript.Shell").SpecialFolders("Desktop")
txtName = Application.GetOpenFilename("*,*.")
②
Application.GetOpenFilenameからなので、文字列抽出するだけです。
Dim Pos As Integer
Pos = InStrRev(txtName, "\") + 1
Debug.Print Left(Mid(txtName, Pos), InStr(Mid(txtName, Pos), ".") - 1)
ChDir OldPath '一応カレントディレクトリを元に戻します
まとめ
Dim OldPath As String, txtName As String
Dim Pos As Integer
OldPath = CurDir
ChDir CreateObject("WScript.Shell").SpecialFolders("Desktop")
txtName = Application.GetOpenFilename("テキストファイル,*.txt")
If txtName <> "False" Then
Pos = InStrRev(txtName, "\") + 1
Range("B1").Value = Left(Mid(txtName, Pos), InStr(Mid(txtName, Pos), ".") - 1)
ChDir OldPath 'カレントディレクトリを戻します。
Open txtName For Input As #1
End If
なるほど!大変勉強になります。
ちなみにDesktopではなく、フォルダのパスで指定したい場合はどのようにしたら良いのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Excel(エクセル) マクロでテキストファイルを読み込んだ際の最終セルにデータと改行が含まれる問題の改善方法 2 2022/03/25 16:50
- Visual Basic(VBA) 貼り付けた値が消えていく 以下はソースファイルの2番目のシートのB6から最終行を取得 ターゲットファ 2 2023/07/27 12:23
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- Excel(エクセル) フォルダ内のワードファイルをPDFに一括変換するVBA 3 2023/06/09 16:51
- Visual Basic(VBA) あるフォルダーのファイルを違う親フォルダーのサブフォルダーに移したい 11 2023/02/15 19:00
- Visual Basic(VBA) フォルダの場所を可変にしたいです(マクロ) 4 2023/05/11 10:00
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
バッチファイル 二つ上のディ...
-
ExcelVBA+xdoc2txtでデスクトッ...
-
AccessからExcel最小化
-
OleDbDataAdapterのエラー
-
エクセルvbaでdocuworksprinter...
-
Shell関数内で変数を使うことに...
-
VB.NETでのiniファイル読込につ...
-
VBA★PDFをPDFアプリで印刷し...
-
【Excel VBA】Power Qurry のソ...
-
【VBA】ExcelマクロでCSVファイ...
-
VBS パスに変数を入れたい
-
Windows PowerShellでscoopコマ...
-
ExcelVBAの使い方 ¥の使い方...
-
Windows10でコマンドプロンプト...
-
ファイルのアクセス回数について
-
VBA 最新のフォルダ取得
-
エクセルのプロパティーでセキ...
-
同じファイル名 上書きしないフ...
-
Excelのフッダ-に「ファイルの...
-
Excel VBA マクロ 選択したフォ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルvbaでdocuworksprinter...
-
バッチファイル 二つ上のディ...
-
Excel 相対パス
-
エクセルVBAで一つ上の階層...
-
xcopyコマンドの進行状況を表示...
-
【VB.NET】App.configにファイ...
-
SaveAsの保存先について
-
ExcelVBAの使い方 ¥の使い方...
-
エクセルのマクロで特定フォル...
-
【VBA】ExcelマクロでCSVファイ...
-
EXCEL(VBA)で指定フォルダ内の...
-
VBA一覧取得 再投稿
-
指定したフォルダ内の最新ファ...
-
ExcelのVBAで上書き保存を確...
-
VBAでパワーシェルを実行したい...
-
コマンドプロンプトのコピー関...
-
VBA★PDFをPDFアプリで印刷し...
-
アプリケーションのインストー...
-
開いているファイルを削除し、...
-
A列に記載されているフォルダ...
おすすめ情報