Excel VBA質問箱 IV

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

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


9459 / 13644 ツリー ←次へ | 前へ→

【27169】開かれているテキストファイルの保存 コム 05/7/31(日) 23:31 質問[未読]
【27172】Re:開かれているテキストファイルの保存 ichinose 05/8/1(月) 7:18 発言[未読]
【27173】Re:開かれているテキストファイルの保存 コム 05/8/1(月) 7:41 お礼[未読]
【27175】Re:開かれているテキストファイルの保存 Ny 05/8/1(月) 9:17 回答[未読]
【27212】Re:開かれているテキストファイルの保存 ichinose 05/8/2(火) 5:08 発言[未読]

【27169】開かれているテキストファイルの保存
質問  コム  - 05/7/31(日) 23:31 -

引用なし
パスワード
   すでに開かれているテキストファイルがあります。
この開かれているテキストファイルをデスクトップに保存し、
閉じる方法を教えて下さい。

【27172】Re:開かれているテキストファイルの保存
発言  ichinose  - 05/8/1(月) 7:18 -

引用なし
パスワード
   ▼コム さん:
おはようございます。
>すでに開かれているテキストファイルがあります。
>この開かれているテキストファイルをデスクトップに保存し、
>閉じる方法を教えて下さい。

'============================================
Sub test()
  MsgBox get_sp_fullpath("Desktop")
End Sub
'===============================================
Function get_sp_fullpath(keyword) As String
  Set WsShell = CreateObject("WScript.Shell")
  get_sp_fullpath = WsShell.SpecialFolders(keyword)
  Set WsShell = Nothing
End Function

とすれば、デスクトップのパスが取得出来ます。
これを使って保存処理を行なって下さい。

【27173】Re:開かれているテキストファイルの保存
お礼  コム  - 05/8/1(月) 7:41 -

引用なし
パスワード
   ichinose さん:
おはようございます。
回答ありがとうございます。

質問が悪かったみたいですね。
一番知りたかったのは、「現在開かれているテキストファイルを保存」
することがわかりません。
既に、保存されているテキストファイルを開いたり閉じたりするのはできるのですが、
既に開いているファイルの操作がわかりません。
保存だけではなく、テキストファイルを閉じることができたらなおさらいいです。

すみませんが、ご教授お願いします。

【27175】Re:開かれているテキストファイルの保存
回答  Ny  - 05/8/1(月) 9:17 -

引用なし
パスワード
   ▼コム さん:

おはようございます。
意味を取り違えていればお許しを・・・
開いているファイルを保存して終了させる
っと理解しますと

名前を付けて保存
上書き保存があるかと思います。

Sub 名前をつけて保存()
ActiveWorkbook.SaveAs Filename:= _
"C:\windows\デスクトップ\名前.xls" & Format(Date, "mm" & "-" & "dd")
Application.Quit  '終了
Workbooks.Close  '閉じる (どちらか選択してください)
End Sub

Sub 上書き保存()
ActiveWorkbook.Save
End Sub

【27212】Re:開かれているテキストファイルの保存
発言  ichinose  - 05/8/2(火) 5:08 -

引用なし
パスワード
   おはようございます。

>一番知りたかったのは、「現在開かれているテキストファイルを保存」
>することがわかりません。
>既に、保存されているテキストファイルを開いたり閉じたりするのはできるのですが、
このできているコードを掲載してくださいネ!!
ご質問の意図を理解するためには、少しでも多くの情報が必要です。

'=================================================================
Sub main()
  Dim flnm As Variant
  Workbooks.Add
  Call mk_sample(ActiveSheet)
  MsgBox "サンプル作成、現在開かれているテキストファイルがアクティブな状態です"
  svfold = get_sp_fullpath("Desktop")
  ChDrive Mid(svfold, 1, 1)
  ChDir svfold 'カレントフォルダをDesktopに設定
  flnm = Application.GetSaveAsFilename(fileFilter:="テキスト ファイル (*.txt), *.txt")
  With ActiveSheet.Parent
    If TypeName(flnm) <> "Boolean" Then
     .SaveAs Filename:=flnm, FileFormat:=xlText
     End If
    .Close False
    End With
End Sub
'=====================================================================
Sub mk_sample(sht As Worksheet)
'テキストファイルのサンプルを作成
  With sht.Range("a1:a20")
    For idx = 1 To .Count
     .Cells(idx).Value = String(10, Chr(64 + idx))
     Next
    End With
End Sub
'=====================================================================
Function get_sp_fullpath(keyword) As String
'特殊フォルダ名を取得する
  Set WsShell = CreateObject("WScript.Shell")
  get_sp_fullpath = WsShell.SpecialFolders(keyword)
  Set WsShell = Nothing
End Function


こんな事でしょうか?、mainを実行してみて下さい

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