Excel VBA質問箱 IV

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

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


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

【15911】テキストファイルに任意行をコピーに関して yasu 04/7/12(月) 13:59 質問[未読]
【15912】Re:テキストファイルに任意行をコピーに関... Jaka 04/7/12(月) 14:21 回答[未読]
【15914】Re:テキストファイルに任意行をコピーに関... yasu 04/7/12(月) 14:36 お礼[未読]
【15917】Re:テキストファイルに任意行をコピーに関... yasu 04/7/12(月) 15:47 質問[未読]
【15922】Re:テキストファイルに任意行をコピーに関... Jaka 04/7/12(月) 16:29 回答[未読]
【15924】Re:テキストファイルに任意行をコピーに関... yasu 04/7/12(月) 16:46 質問[未読]
【15927】Re:テキストファイルに任意行をコピーに関... Jaka 04/7/12(月) 17:21 回答[未読]
【15928】Re:テキストファイルに任意行をコピーに関... yasu 04/7/12(月) 17:24 お礼[未読]
【15948】Re:テキストファイルに任意行をコピーに関... Kein 04/7/13(火) 0:44 回答[未読]
【15952】Re:テキストファイルに任意行をコピーに関... yasu 04/7/13(火) 10:23 お礼[未読]

【15911】テキストファイルに任意行をコピーに関し...
質問  yasu  - 04/7/12(月) 13:59 -

引用なし
パスワード
   お世話になります。正直このような事がVBAで出来るか分からないのですが、
教えて頂ければ幸いです。

指定フォルダのファイル一覧をワークシートに記入し、記入されたファイル名一覧を
テキストファイル(メモ帳)に貼り付ける事など出来るのでしょうか?

出来るのあれば指定テキストファイルに貼り付けられれば幸いなのですが。
よろしくお願いします。

【15912】Re:テキストファイルに任意行をコピーに...
回答  Jaka  - 04/7/12(月) 14:21 -

引用なし
パスワード
   参考になると思います。
[#10903]
[#15692]


【15914】Re:テキストファイルに任意行をコピーに...
お礼  yasu  - 04/7/12(月) 14:36 -

引用なし
パスワード
   jakaさん

本当に有り難うございます。
非常に参考になりました。
今後ともよろしくお願いします。


▼Jaka さん:
>参考になると思います。
>[#10903]
>[#15692]
>

【15917】Re:テキストファイルに任意行をコピーに...
質問  yasu  - 04/7/12(月) 15:47 -

引用なし
パスワード
   ▼yasu さん:
>jakaさん
 先ほどは誠に有り難うございます。


  SendKeys ("%EP")
  DoEvents
  SendKeys ("{ENTER}")

  SendKeys ("%FS") 'ファイル上書き保存
  SendKeys ("%FX") 'ファイル閉じる
  DoEvents
  SendKeys "{NUMLOCK}"

  下記3種類の意味が理解出来ません。
お手数ではございますが、教えてください。
よろしくお願いします。

  SendKeys ("%EP")
  SendKeys ("{ENTER}")
  SendKeys "{NUMLOCK}"


>
>本当に有り難うございます。
>非常に参考になりました。
>今後ともよろしくお願いします。
>
>
>▼Jaka さん:
>>参考になると思います。
>>[#10903]
>>[#15692]
>>

【15922】Re:テキストファイルに任意行をコピーに...
回答  Jaka  - 04/7/12(月) 16:29 -

引用なし
パスワード
   SendKeys ("%EP")
Alt + E + P

SendKeys "{NUMLOCK}"
97だとNumLockがOffになるから入れてあるだけで、Offにならないか、気にしなければ。はずしても良いです。

SendKeys ("{ENTER}")
Enter

【15924】Re:テキストファイルに任意行をコピーに...
質問  yasu  - 04/7/12(月) 16:46 -

引用なし
パスワード
   ▼Jaka さん:
お世話になります。

>SendKeys ("%EP")
>Alt + E + P
非常によくわかりました。
有り難うございました。

>SendKeys "{NUMLOCK}"
あと、もう一つだけ教えてください^^;
NUMLOCKする事で何かあるのでしょうか?
私の環境(WIN2000)では取ると先ほどのマクロ上手く動きません。
よろしくお願いします。

【15927】Re:テキストファイルに任意行をコピーに...
回答  Jaka  - 04/7/12(月) 17:21 -

引用なし
パスワード
   >NUMLOCKする事で何かあるのでしょうか?
offだと、テンキーが使えません。

>私の環境(WIN2000)では取ると先ほどのマクロ上手く動きません。
>よろしくお願いします。
97でもほとんどの場合、うまく動きません。
(sendkeysで、NUMLOCKの操作は、うまくいかない事が多いらしいです。)
要するに気休め、と思っていた方が良いかも、ノートパソには無いし....。

【15928】Re:テキストファイルに任意行をコピーに...
お礼  yasu  - 04/7/12(月) 17:24 -

引用なし
パスワード
   ▼Jaka さん:
色々と有り難うございました。

まだまだ未熟なんですが、今後ともよろしくお願いします。

【15948】Re:テキストファイルに任意行をコピーに...
回答  Kein  - 04/7/13(火) 0:44 -

引用なし
パスワード
   要するに、任意のフォルダーのファイル一覧テキストを作れば良いのですね ?
↓こんな感じで、どうでしょーか ? DOSの DIRコマンド を使うので高速です。

Sub FileCheck_Text()
  Dim Bff As Object
  Dim GetF As String, MyTxt As String, Ck As String
  Const MyCom As String = "COMMAND.COM /C DIR "
  Const MkTxt As String = "C:\FCheck.txt"
 
  Set Bff = CreateObject("Shell.Application"). _
  BrowseForFolder(0, "フォルダを選択してください", 0)
  If Bff Is Nothing Then Exit Sub
  GetF = Bff.Items().Item().Path
  GetF = CreateObject("Scripting.FileSystemObject") _
  .GetFolder(GetF).ShortPath
  Set Bff = Nothing
  If Dir(MkTxt) = "" Then
   Ck = "> "
  Else
   Ck = ">> "
  End If
  Shell MyCom & GetF & " /A /S /B" & Ck & MkTxt, 6
  If Dir(MkTxt) = "" Then
   MsgBox "テキストが作成されていません", 48
  Else
   If Ck = "> " Then
     MsgBox "ファイル一覧を作成しました", 64
   Else
     MsgBox "ファイル一覧を追加しました", 64
   End If
  End If
End Sub

このコードは、当方のOS(Win98)用のものです。WinNT系だと

Const MyCom As String = "CMD.EXE /C DIR "

に変更すればいいはずです。
"C:\FCheck.txt" というファイルは、予め用意しておかなくても、最初の実行で
作成されます。2回目以降は、それに追加していくようになります。
メッセージの内容が "作成"→"追加" と変わるので、確認できるでしょう。

【15952】Re:テキストファイルに任意行をコピーに...
お礼  yasu  - 04/7/13(火) 10:23 -

引用なし
パスワード
   ▼Kein さん:
有り難うございます。
本当にこのサイトはもの凄く勉強になります。

今後ともよろしくお願いします。


>要するに、任意のフォルダーのファイル一覧テキストを作れば良いのですね ?
>↓こんな感じで、どうでしょーか ? DOSの DIRコマンド を使うので高速です。
>
>Sub FileCheck_Text()
>  Dim Bff As Object
>  Dim GetF As String, MyTxt As String, Ck As String
>  Const MyCom As String = "COMMAND.COM /C DIR "
>  Const MkTxt As String = "C:\FCheck.txt"
> 
>  Set Bff = CreateObject("Shell.Application"). _
>  BrowseForFolder(0, "フォルダを選択してください", 0)
>  If Bff Is Nothing Then Exit Sub
>  GetF = Bff.Items().Item().Path
>  GetF = CreateObject("Scripting.FileSystemObject") _
>  .GetFolder(GetF).ShortPath
>  Set Bff = Nothing
>  If Dir(MkTxt) = "" Then
>   Ck = "> "
>  Else
>   Ck = ">> "
>  End If
>  Shell MyCom & GetF & " /A /S /B" & Ck & MkTxt, 6
>  If Dir(MkTxt) = "" Then
>   MsgBox "テキストが作成されていません", 48
>  Else
>   If Ck = "> " Then
>     MsgBox "ファイル一覧を作成しました", 64
>   Else
>     MsgBox "ファイル一覧を追加しました", 64
>   End If
>  End If
>End Sub
>
>このコードは、当方のOS(Win98)用のものです。WinNT系だと
>
>Const MyCom As String = "CMD.EXE /C DIR "
>
>に変更すればいいはずです。
>"C:\FCheck.txt" というファイルは、予め用意しておかなくても、最初の実行で
>作成されます。2回目以降は、それに追加していくようになります。
>メッセージの内容が "作成"→"追加" と変わるので、確認できるでしょう。

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