Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


8702 / 13646 ツリー ←次へ | 前へ→

【31602】拡張子なしのファイルの読込 R 05/11/26(土) 13:32 質問[未読]
【31603】Re:拡張子なしのファイルの読込 ぱっせんじゃー 05/11/26(土) 17:15 発言[未読]
【31619】Re:拡張子なしのファイルの読込 R 05/11/27(日) 13:28 質問[未読]
【31621】Re:拡張子なしのファイルの読込 ぱっせんじゃー 05/11/27(日) 13:40 発言[未読]
【31622】Re:拡張子なしのファイルの読込 ぱっせんじゃー 05/11/27(日) 13:41 発言[未読]
【31629】Re:拡張子なしのファイルの読込 R 05/11/27(日) 14:59 質問[未読]
【31635】Re:拡張子なしのファイルの読込 ぱっせんじゃー 05/11/27(日) 15:44 回答[未読]
【31636】Re:拡張子なしのファイルの読込 ぱっせんじゃー 05/11/27(日) 15:52 発言[未読]
【31641】Re:拡張子なしのファイルの読込 R 05/11/27(日) 18:28 お礼[未読]
【31697】Re:拡張子なしのファイルの読込 R 05/11/28(月) 18:07 質問[未読]
【31700】Re:拡張子なしのファイルの読込 ぱっせんじゃー 05/11/28(月) 20:36 回答[未読]
【31710】Re:拡張子なしのファイルの読込 R 05/11/29(火) 8:57 お礼[未読]
【31637】Re:拡張子なしのファイルの読込 ichinose 05/11/27(日) 16:03 発言[未読]

【31602】拡張子なしのファイルの読込
質問  R  - 05/11/26(土) 13:32 -

引用なし
パスワード
    はじめまして、Rといいます。

拡張子なしのファイルの読込方法を検討しています。
ファイル名は ”20051125”といったものになります。

ファイル名の指定はフォルダ内から指定するようにしてあり、

'指定フォルダからファイル名を取得
If Not GetFilesList(vntFileNames, strPath, objFso, "", ".*") Then
    strProm = "ファイルが有りません"
    GoTo Wayout
  End If

としています。

拡張子のあるもの(たとえばcsv)であればうまく動作するのですが、
ないものではエラーが出てしまいます。

よろしくお願いします。

【31603】Re:拡張子なしのファイルの読込
発言  ぱっせんじゃー  - 05/11/26(土) 17:15 -

引用なし
パスワード
   ファイルを複製してリネーム、そのご取込み、
ファイル削除、ではだめですか?

【31619】Re:拡張子なしのファイルの読込
質問  R  - 05/11/27(日) 13:28 -

引用なし
パスワード
   リネームも考えたのですが、
できれば元データ(拡張子無し)をそのまま読込たいのですが。。。

Excelのマクロでは無理なんでしょうか?

よろしくお願いします。

【31621】Re:拡張子なしのファイルの読込
発言  ぱっせんじゃー  - 05/11/27(日) 13:40 -

引用なし
パスワード
   拡張子を付与したくない理由は何でしょう?
私の案は、ファイルを複製してリネームですので、
元のファイルには影響ありませんが。

【31622】Re:拡張子なしのファイルの読込
発言  ぱっせんじゃー  - 05/11/27(日) 13:41 -

引用なし
パスワード
   補足です。
ファイルを複製してリネーム、これもマクロで出来ます。

【31629】Re:拡張子なしのファイルの読込
質問  R  - 05/11/27(日) 14:59 -

引用なし
パスワード
   ぱっせんじゃーさん

お返事ありがとうございます。

リネーム処理は別のフリーソフト等をつかうと勘違いしていました。
環境上フリーソフトは禁止されているので...

ファイルを複製してリネームということでしたが
ファイルを複製する際にはどのような処理をするのでしょうか?

【31635】Re:拡張子なしのファイルの読込
回答  ぱっせんじゃー  - 05/11/27(日) 15:44 -

引用なし
パスワード
   ファイルを拡張子を付与してコピーするサンプルです。

Sub fcopy()
Dim motof As String
Dim sakif As String
 motof = "C:\Documents and Settings\passe\デスクトップ\test"
 sakif = "C:\Documents and Settings\passe\デスクトップ\test2.txt"
 FileCopy motof, sakif
End Sub

【31636】Re:拡張子なしのファイルの読込
発言  ぱっせんじゃー  - 05/11/27(日) 15:52 -

引用なし
パスワード
   提示したサンプルはファイルのコピーですが、
ファイル名の変更は、

Name ステートメント

を使います。
VBAヘルプに使用方法が記載されています。

【31637】Re:拡張子なしのファイルの読込
発言  ichinose  - 05/11/27(日) 16:03 -

引用なし
パスワード
   ▼R さん,ぱっせんじゃーさん、こんにちは。

>
>拡張子なしのファイルの読込方法を検討しています。
>ファイル名は ”20051125”といったものになります。
これね、拡張子の有無より、この拡張子なしのファイルの中身が
txtファイルやCsvファイルなら、読み込むことはできます。

新規ブックの標準モジュールに以下のコードをコピーし、
一度、ブックを保存したの後に実行してみて下さい。

'====================================================
Sub mk_sample()
  Dim flno As Long
  flno = FreeFile()
  Open ThisWorkbook.Path & "\samp" & Format(Date, "yyyymmdd") For Output As #flno
  For idx = 1 To 10
   Print #flno, idx & "を記述しました"
   Next
  Close #flno
End Sub

'↑拡張子なしのファイルのサンプルの作成、保存したブックと同じフォルダに
'samp20051127(本日実行すれば) という拡張子なしのファイルを作成します。


'=============================================================
Sub read_sample()
  Dim flno As Long
  Dim txt As String
  Dim rw As Long
  flno = FreeFile()
  rw = 0
  Open ThisWorkbook.Path & "\samp" & Format(Date, "yyyymmdd") For Input As #flno
  
  Do Until EOF(flno)
   Line Input #flno, txt
   rw = rw + 1
   Cells(rw, 1).Value = txt
   Loop
   
  Close #flno
End Sub

'作成した拡張子なしファイルから,データを読込み、セルA1から順次表示します


確認してみて下さい

【31641】Re:拡張子なしのファイルの読込
お礼  R  - 05/11/27(日) 18:28 -

引用なし
パスワード
   ぱっせんじゃー さん

ありがとうございます。
おかげさまでなんとかうまくできました。

【31697】Re:拡張子なしのファイルの読込
質問  R  - 05/11/28(月) 18:07 -

引用なし
パスワード
   ぱっせんじゃーさん

こんにちはRです。
もう一つ質問があります。

ファイルが1つで決まったものであればいいのですが、
フォルダにいくつもファイルがあって
ファイル名としては頭に"w"がつき後はランダムなものであれば
どのようにすればよいでしょうか?

もう一度まとめると
フォルダ内の拡張子なしのファイルをすべてリネーム
ファイル名はランダム

以上よろしくお願いします。

【31700】Re:拡張子なしのファイルの読込
回答  ぱっせんじゃー  - 05/11/28(月) 20:36 -

引用なし
パスワード
   こんばんは。
完全ではないかも知れません、という前置きで・・・。

ファイル名に"."が含まれるかどうかで処理分岐
させてはいかがでしょう?

サンプルです。
Splitを使ってますので、エクセル2000以上でないと使えません。
実際には、Msgboxの部分をファイルの複製の記述に置き換えてく
ださい。

Sub fitiran()
  Dim fname As String, i As Long
  i = 1
  fname = Dir("D:\passe\")
  Do While fname <> ""
    If UBound(Split(fname, ".")) = 0 Then
      MsgBox fname & "はどっとがない"
     End If
    fname = Dir()
  Loop
End Sub

いまから明日のお昼までPCに触れません。あしからず・・・。

【31710】Re:拡張子なしのファイルの読込
お礼  R  - 05/11/29(火) 8:57 -

引用なし
パスワード
   ぱっせんじゃーさん

おはようございます。
昨夜試してみましたところうまくいきました。

ファイル名"."の有無を判別するコードがわからなかったので、
大変ためになりました。

ありがとうございました。

8702 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free