Excel VBA質問箱 IV

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

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


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

【63514】ファイルの種類変更 マクロ 09/11/14(土) 22:41 質問[未読]
【63515】Re:ファイルの種類変更 よろずや 09/11/14(土) 23:28 回答[未読]
【63531】Re:ファイルの種類変更 マクロ 09/11/15(日) 22:50 質問[未読]
【63533】Re:ファイルの種類変更 Yuki 09/11/16(月) 8:11 発言[未読]
【63542】Re:ファイルの種類変更 マクロ 09/11/16(月) 20:48 質問[未読]
【63543】Re:ファイルの種類変更 かみちゃん 09/11/17(火) 4:59 発言[未読]
【63560】Re:ファイルの種類変更 マクロ 09/11/18(水) 1:32 質問[未読]
【63562】Re:ファイルの種類変更 かみちゃん 09/11/18(水) 6:36 発言[未読]
【63563】Re:ファイルの種類変更 Yuki 09/11/18(水) 8:01 発言[未読]
【63566】Re:ファイルの種類変更 マクロ 09/11/18(水) 13:11 質問[未読]
【63567】Re:ファイルの種類変更 Yuki 09/11/18(水) 13:36 発言[未読]
【63568】Re:ファイルの種類変更 マクロ 09/11/18(水) 13:52 お礼[未読]

【63514】ファイルの種類変更
質問  マクロ  - 09/11/14(土) 22:41 -

引用なし
パスワード
   SLYKで保存しているファイルを
Excel97-2003ブックの種類にファイルを変更したいのですが
そういうことはマクロで可能でしょうか。
 (できればファイルを開かず、変更だけしたい)

ファイルを選択して、選択したファイルを変更したいのですが。

なお、選択するのは1つと限らないので、複数ある場合もあります。

お分かりの方のご教授よろしくお願いします。

【63515】Re:ファイルの種類変更
回答  よろずや  - 09/11/14(土) 23:28 -

引用なし
パスワード
   ▼マクロ さん:
>SLYKで保存しているファイルを
>Excel97-2003ブックの種類にファイルを変更したいのですが
>そういうことはマクロで可能でしょうか。
> (できればファイルを開かず、変更だけしたい)

はい、可能です。
ただし、ファイルを開いて保存しなおすことになります。
(開いたファイルのウィンドウを見せないようにすることは可能です)

手動では出来るんですよね。
そしたら、とりあえずマクロの記録をして見ましょう。

それから、記録されたマクロをどう変えれば希望の動きになるか考えましょうね。

【63531】Re:ファイルの種類変更
質問  マクロ  - 09/11/15(日) 22:50 -

引用なし
パスワード
   ▼よろずや さん:
 返信ありがとうございます。

マクロなどを使用して
sub test()
  Dim wb As Workbook, ws As Worksheet, i As Long, myFile
  myFile = Application.GetOpenFilename _
        (filefilter:="サンプルファイル,*.slk", _
        Title:="ファイルを選択", MultiSelect:=True)
  If TypeName(myFile) = "Boolean" Then Exit Sub
  For i = 1 To UBound(myFile)
    Workbooks.Open (myFile(i))
      ActiveWorkbook.SaveAs Filename:=ここに保存, _
    FileFormat:=xlExcel8, Password:="", WriteResPassword:="", _
    ReadOnlyRecommended:=False, CreateBackup:=False
    ActiveWindow.Close
   Set wb = Nothing
  Next i
end sub

としてみたのですが、
ファイルを選択するまでは何とかうまくいくのですが、
そのファイル名を採用して、そのファイルをデスクトップに
保存する方法がわかりません。

どなたか、ご教授よろしくおねがいします。

【63533】Re:ファイルの種類変更
発言  Yuki  - 09/11/16(月) 8:11 -

引用なし
パスワード
   ▼マクロ さん:

>そのファイル名を採用して、そのファイルをデスクトップに
>保存する方法がわかりません。

追加 ↓
  Dim DT   As String
  DT = CreateObject("WScript.Shell").SpecialFolders.Item("Desktop") & "\"
    
  For i = 1 To UBound(myFile)
    Set wb = Workbooks.Open(myFile(i))
    strNM = Replace(Dir(myFile(i)), ".slk", ".xls")
    wb.SaveAs Filename:=DT & strNM, _
         FileFormat:=xlExcel7, Password:="", _
         WriteResPassword:="", ReadOnlyRecommended:=False, _
         CreateBackup:=False
    wb.Close False
    Set wb = Nothing
  Next i

【63542】Re:ファイルの種類変更
質問  マクロ  - 09/11/16(月) 20:48 -

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


ご教授ありがとうございます。

あと1点わからない点があるのです。
本来はデスクトップに保存する予定だったのですが、
保存先を、選択したいのです。

なお、新しいフォルダを作成できる機能もつけたいのですが
コードの書き方が全くわからなくて。。。

おわかりの方、ご教授よろしくお願いします


  Application.ScreenUpdating = False
  Dim wb As Workbook, ws As Worksheet, i As Long, myFile
  myFile = Application.GetOpenFilename _
        (filefilter:="サンプルファイル,*.slk", _
        Title:="ファイルを選択", MultiSelect:=True)
  If TypeName(myFile) = "Boolean" Then Exit Sub
  
    Dim DT As String
  DT = CreateObject("WScript.Shell").SpecialFolders.Item("Desktop") & "\"
  
  For i = 1 To UBound(myFile)
    Set wb = Workbooks.Open(myFile(i))
    strNM = Replace(Dir(myFile(i)), ".slk", ".xls")
    wb.SaveAs Filename:=DT & strNM, _
         FileFormat:=xlExcel7, Password:="", _
         WriteResPassword:="", ReadOnlyRecommended:=False, _
         CreateBackup:=False
    wb.Close False
    Set wb = Nothing
  Next i
Application.ScreenUpdating = True

【63543】Re:ファイルの種類変更
発言  かみちゃん  - 09/11/17(火) 4:59 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>保存先を、選択したいのです。
>
>なお、新しいフォルダを作成できる機能もつけたい

以下が参考になると思います。
http://officetanaka.net/excel/vba/tips/tips39.htm

【63560】Re:ファイルの種類変更
質問  マクロ  - 09/11/18(水) 1:32 -

引用なし
パスワード
   ▼かみちゃん さん:

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

HP見ました。
が、たとえば複数のファイルを選択した場合、
1回目で指定したフォルダを継続して2番目以降も
そのフォルダに入れていきたいと思っています。
その場合のコードがわからずで悩んでます。。

【63562】Re:ファイルの種類変更
発言  かみちゃん  - 09/11/18(水) 6:36 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>たとえば複数のファイルを選択した場合、
>1回目で指定したフォルダを継続して2番目以降も
>そのフォルダに入れていきたいと思っています。
>その場合のコードがわからずで悩んでます。。

では、現時点でできているコードを提示してみたらいかがですか?
1回目で指定したフォルダのパスを変数に入れておくだけだと思いますが。

【63563】Re:ファイルの種類変更
発言  Yuki  - 09/11/18(水) 8:01 -

引用なし
パスワード
   ▼マクロ さん:
>が、たとえば複数のファイルを選択した場合、
>1回目で指定したフォルダを継続して2番目以降も
>そのフォルダに入れていきたいと思っています。
>その場合のコードがわからずで悩んでます。。

こんにちは。
  DT = CreateObject("WScript.Shell").SpecialFolders.Item("Desktop") & "\"

の変わりに
DT = 取得したフォルダ名
でいいですよ。

【63566】Re:ファイルの種類変更
質問  マクロ  - 09/11/18(水) 13:11 -

引用なし
パスワード
   ▼Yuki さん:
>  DT = CreateObject("WScript.Shell").SpecialFolders.Item("Desktop") & "\"
>
>の変わりに
>DT = 取得したフォルダ名
>でいいですよ。


ご指摘の通りやってみたのですが、内容が力量不足でよくわからなく。。

Sub test3()
  Application.ScreenUpdating = False
  Dim wb As Workbook, ws As Worksheet, i As Long, myFile
  myFile = Application.GetOpenFilename _
        (filefilter:="サンプルファイル,*.slk", _
        Title:="ファイルを選択", MultiSelect:=True)
  If TypeName(myFile) = "Boolean" Then Exit Sub
  
  With Application.FileDialog(msoFileDialogFolderPicker)
    If .Show = True Then
      Dim DT As String
      DT = CreateObject("WScript.Shell").SpecialFolders.SelectedItems(1)
    End If
  End With
  For i = 1 To UBound(myFile)
    Set wb = Workbooks.Open(myFile(i))
    strNM = Replace(Dir(myFile(i)), ".slk", ".xls")
    wb.SaveAs Filename:=DT & strNM, _
         FileFormat:=xlExcel7, Password:="", _
         WriteResPassword:="", ReadOnlyRecommended:=False, _
         CreateBackup:=False
    wb.Close False
    Set wb = Nothing
  Next i
Application.ScreenUpdating = True


End Sub

【63567】Re:ファイルの種類変更
発言  Yuki  - 09/11/18(水) 13:36 -

引用なし
パスワード
   ▼マクロ さん:
>
>ご指摘の通りやってみたのですが、内容が力量不足でよくわからなく。。

チャンと内容を確認しましょうね

  With Application.FileDialog(msoFileDialogFolderPicker)
    If .Show = True Then
      Dim DT As String       ' 最初に定義しましょう。
      DT = .SelectedItems(1) & "\"
    End If
  End With

【63568】Re:ファイルの種類変更
お礼  マクロ  - 09/11/18(水) 13:52 -

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

回答ありがとうございます。

構造がわからなく、どこをどう変えればいいかわからなくて。。。

教えていただいたコードで全て願いが叶いました。
ありがとうございます。

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