Excel VBA質問箱 IV

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

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


71756 / 76732 ←次へ | 前へ→

【9469】Re:エラーメッセージを出す
質問  テーブル  - 03/12/4(木) 17:20 -

引用なし
パスワード
   INAさん度々ありがとうございます。
まずは、エラーの分析をしてみました。
まずは、下記のコードは、

変数myPathが、GetMyDocumentsPath & "\CD\CDのCSV"までのフォルダ名で、
GetMyDocumentsPathが、「C:\Documents and Settings\ID\My Documents」 
までのパスを取ってくるらしい変数で、コードは難しくて理解できなかったのですが、別SubでPublic Functionから持ってきているものです。

そして、CSVに変換をして、保存をするようにしているのですが、一回の作業(EXCELで保存せずに、一回の作業でCSVに変換した場合)は、うまくいくのですが、例えば、EXCELを一回別のフォルダに保存して、そこから、このマクロの入っているEXCELを起動させて動かすと、パスが違ってエラーがでてしまうと表示されます。

なので、保存する際に「myPathと、ファイル名」だけで保存したいのですが、ファイル名にパスがついてくるために、myPath+ファイルのパスでダブってしまうために、「-56」で減らしてから、保存するようにしていたのですが・・・・結局は、それじゃ対応策にならなくなってしまい・・・・・ 

わかりにくい文章でしたが、どうしていいかわからないので、本当に困っているので、解決法を教えて頂けないでしょうか?

Sub PerfectSave()
  Dim Cmax As Integer, Rmax As Long, CC As Integer, RR As Long
  Dim Cfile As String, DC As String
  Dim ws As Worksheet
  Set ws = ActiveSheet '現在表示中のシートが対象
  Dim myFileName As String
  Dim myPath As String
  myPath = GetMyDocumentsPath & "\CD\CDのCSV"

  DC = Chr(34) '"
  'NewFile

On Error Resume Next
  With ws.Parent
     '保存されたブックの時はブックと同じフォルダに
     Cfile = .FullName
     Cfile = Right(Cfile, Len(Cfile) - 56)
     Cfile = myPath & Left(Cfile, Len(Cfile$) - 3) & "csv"
  End With
  Debug.Print Cfile
If Err.Number = 5 Then
 MsgBox "CSVを読み込んでから実行してください"
 Exit Sub ' ←もしくは End
End If
On Error GoTo 0

  '出力範囲
  Application.EnableEvents = False
 
  ActiveSheet.Unprotect
  Rows(1).Delete
  With Selection.CurrentRegion
   Cmax = .Cells(.Count).Column
   Rmax = .Cells(.Count).Row
  End With
 
  With ws
   Open Cfile For Output As #2
     For RR = 1 To Rmax
      For CC = 1 To Cmax
        If CC > 1 Then Print #2, ",";
        '数字は”でくくらない場合などはここで分岐
        Print #2, Chr(34) & .Cells(RR, CC).Value & Chr(34);
      Next
      Print #2, "" '改行
     Next
   Close #2
   Application.DisplayAlerts = False
   Application.Quit
   Application.DisplayAlerts = True
  End With

  Set ws = Nothing
 

End Sub

2 hits

【9430】エラーメッセージを出す テーブル 03/12/4(木) 10:35 質問
【9434】Re:エラーメッセージを出す INA 03/12/4(木) 11:04 回答
【9441】Re:エラーメッセージを出す テーブル 03/12/4(木) 11:57 お礼
【9463】Re:エラーメッセージを出す テーブル 03/12/4(木) 16:30 質問
【9464】Re:エラーメッセージを出す INA 03/12/4(木) 16:46 回答
【9469】Re:エラーメッセージを出す テーブル 03/12/4(木) 17:20 質問
【9471】Re:エラーメッセージを出す INA 03/12/4(木) 17:35 回答
【9474】Re:エラーメッセージを出す テーブル 03/12/4(木) 18:19 お礼

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